作者warex14 (航)
看板Web_Design
標題Re: [問題] &&=和||=的意思?
時間Tue Jun 16 01:27:54 2015
※ 引述《zpl ()》之銘言:
: ※ 引述《Adicia (愛迪希亞)》之銘言:
: : &&=
: : 進行&&運算,並將運算結果指定給左邊的運算式
: : 例如,下面的運算是相同的:
: : x&&=y;
: : x=x&&y;
: : ||=
: : 進行||運算,並將運算結果指定給左邊的運算式
: : 例如,下面的運算是相同的
: : x||=y;
: : x=x||y;
: : 摘自-張亞飛《Javascript +jQuery全能權威指南》
: : 以上的解說和範例完全看不懂@@
: : 我知道&&是and,||是or的意思
: : 它不是比較前後,最後得出的是布林值嗎?
: : 它可以進行什麼樣的運算呢?相加之類的嗎?
: : 新手學習中... 請多多指點,謝謝~~
: 更正 ||= 與 &&= 是as3才能用
: 一般而言我會在一些狀況下使用這種寫法
: 「 ||= 」比較常用到,通常是在做預設值的時候會用到,
: 因為 || 的特性是當判斷到可以是true的情況就回傳
: ex:
: var x = 0 || false || 1234 || 5566 ;
: 則 x = 1234;
有點舊的文章了,但因為我是新手所以想來請教一下
我有點搞不懂 x=...||... ; 是在做什麼。
google了"javascript ||" 好像"||"會被忽略掉,所以也就不知道該怎麼辦
所以就來這邊請教各位高手。
我想問的是:
為什麼 x = 0 || false || 1234 || 5566 ;
最後得出的會是 x=1234 ?
x = 0 || false || 1234 || 5566 ;←翻譯成白話文要怎麼解釋阿?
應該不可能是「把 0或者false或者1234或者5566裡面的其中一個值丟進x裡」吧?
是指「把 0,false,1234,5566當中由左數過來第一個不是0或是false的值丟進x裡」嗎?
因為沒看過這種寫法,所以有點昏...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.231.6
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1434389276.A.776.html
→ iamnodoubt: 因為 || 的特性是當判斷到可以是true的情況就回傳 06/16 01:50
→ iamnodoubt: 原文不是有講? 06/16 01:50
因為我不太清楚1234也是屬於true?
看來我得再多用功一點了...
→ mmis1000: || 的意思是,如果左邊的值不是空值(ex:false 0 [] '') 06/16 01:51
→ mmis1000: 就回傳左邊,否則就右邊 06/16 01:51
→ mmis1000: 所以 (0) || (false || 1234 || 5566) 06/16 01:52
→ mmis1000: (false) || (1234 || 5566) 06/16 01:52
→ mmis1000: (1234) || (5566) 06/16 01:52
→ mmis1000: 1234 06/16 01:52
→ tooto1985: 短路邏輯 Short-circuit evaluation 06/16 09:05
※ 編輯: warex14 (140.112.25.106), 06/16/2015 11:04:22
→ tooto1985: 用兩個驚嘆號可將任何東西轉成布林值 !!1234 !!5566 06/16 22:50