Re: [問題] &&=和||=的意思?

看板Web_Design作者 (航)時間10年前 (2015/06/16 01:27), 10年前編輯推噓0(0010)
留言10則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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

06/16 01:50, , 1F
因為 || 的特性是當判斷到可以是true的情況就回傳
06/16 01:50, 1F

06/16 01:50, , 2F
原文不是有講?
06/16 01:50, 2F
因為我不太清楚1234也是屬於true? 看來我得再多用功一點了...

06/16 01:51, , 3F
|| 的意思是,如果左邊的值不是空值(ex:false 0 [] '')
06/16 01:51, 3F

06/16 01:51, , 4F
就回傳左邊,否則就右邊
06/16 01:51, 4F

06/16 01:52, , 5F
所以 (0) || (false || 1234 || 5566)
06/16 01:52, 5F

06/16 01:52, , 6F
(false) || (1234 || 5566)
06/16 01:52, 6F

06/16 01:52, , 7F
(1234) || (5566)
06/16 01:52, 7F

06/16 01:52, , 8F
1234
06/16 01:52, 8F

06/16 09:05, , 9F
短路邏輯 Short-circuit evaluation
06/16 09:05, 9F
※ 編輯: warex14 (140.112.25.106), 06/16/2015 11:04:22

06/16 22:50, , 10F
用兩個驚嘆號可將任何東西轉成布林值 !!1234 !!5566
06/16 22:50, 10F
文章代碼(AID): #1LVmiSTs (Web_Design)
文章代碼(AID): #1LVmiSTs (Web_Design)