在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js中a?b:c和a&&b||c有什么區(qū)別

js中a?b:c和a&&b||c有什么區(qū)別

結(jié)果有區(qū)別嗎?效率有區(qū)別嗎?

發(fā)現(xiàn)自己sb了……一開始打錯字,后來又沒注意到b的問題,補充下吧,!b為false

回答
編輯回答
孤星

a && b 相當于 a ? b : a

x || c 相當于 x ? x : c

所以合在一起

a && b || c 相當于 a ? b ? b : c : c

2018年8月27日 14:23
編輯回答
墻頭草

a ? b : c 的意思是,如果 a 的值判定為 true,則表達式返回 b 的值;否則,返回 c 的值。

a && b || c 是邏輯計算,返回整個表達式的值,只不過出于優(yōu)化的角度,如果前面的計算已經(jīng)確定了結(jié)果,就會提前中止,此時返回的可能是中間某個表達式的值。

所以當 a = 1, b = 0, c = 1 的時候,就會返回 c 的值,此時和上面的二元運算符結(jié)果不同。

2017年9月27日 07:38
編輯回答
萌小萌

a?b:c // true時返回b;false時返回c
a&&b||c // a,b都不是假值,返回b;a,b其中有一個是假值,返回c

也就是說,當b為假值(false, null, 0, "", undefined 和 NaN)時,兩者結(jié)果會不同。
而最長出現(xiàn)的比如( a = 1 ) && console.log( a ) || 2,則最終會依次顯示 1 和 2,因為console.log( a ) return 為 undefined。

2018年3月30日 12:12
編輯回答
情已空

前者b不參與判斷。后者b參與判斷。

2017年12月30日 14:39
編輯回答
故林

根據(jù)邏輯來理解啊。 a?b:c 只判斷a a真返回b否則返回c
a&&b||c 先判斷a a真=》判斷b b真 返回b b假 返回c

            a假=>返回c
2017年4月2日 07:45
編輯回答
怣痛

讓我重新溫習了一下JavaScript的運算符,棒

2018年4月4日 08:03