鍍金池/ 問(wèn)答/HTML/ js中 ||是什么意思?

js中 ||是什么意思?

clipboard.png

如上圖,第2行和第3行是什么意思

回答
編輯回答
有點(diǎn)壞

||表示邏輯或,會(huì)嘗試將符號(hào)左側(cè)轉(zhuǎn)換為Boolean對(duì)象,如果左側(cè)為true則表達(dá)式結(jié)果為左側(cè)值,如果為false,則表達(dá)式結(jié)果為右側(cè)值。

在ES5的年代,這種寫法多用于處理默認(rèn)值。

結(jié)合截圖來(lái)說(shuō):如果nodes[link.source]false,則給nodes[link.source]賦值為一個(gè)Object,并將其返回。
如果nodes[link.source]不為false,則直接返回nodes[link.source]

P.S. 上邊所說(shuō)的false不是真正意義上的Boolean false,而是所有可以轉(zhuǎn)換為false的值,包含null、undefined、0之類的

2017年5月31日 06:28
編輯回答
兔寶寶

或的意思,如果前面值存在,就用前面的值賦值,后面的不執(zhí)行,如果不存在,就取后面的值.
與之對(duì)應(yīng)的是&&,與.

2018年8月3日 16:19
編輯回答
旖襯

這個(gè)是一個(gè)邏輯運(yùn)算符 ,表示 邏輯 ,即其前后兩邊的邏輯判斷 除非全部為,否則都返回。其對(duì)應(yīng)真值表為

A判斷     ||     B判斷     輸出
0                0         0
1                0         1
0                1         1
1                1         1

其中0表示,1表示。

具體到你提供的程序,這里利用了邏輯運(yùn)算的一個(gè)特性,就是前面為就執(zhí)行后面語(yǔ)句,前面為就不執(zhí)行后面語(yǔ)句。
其中第2句等效于

當(dāng) nodes[link.source]有值且不為0、false、‘’(空字符串)等邏輯值時(shí)將其賦給 link.source,不繼續(xù)執(zhí)行||后面的代碼;
當(dāng)nodes[link.source]沒(méi)有值或者值為0、false‘0’時(shí),將{name: link.source}先賦值給nodes[link.source],再將nodes[link.source]賦值給link.source。始終保證link.source可以取到相應(yīng)的值。
后面的第3句類似,只是值的位置不同而已。

2018年4月25日 08:27
編輯回答
糖豆豆

邏輯或有點(diǎn)類似與默認(rèn)參數(shù),但是較默認(rèn)參數(shù)更為寬松。
上述代碼的意思為:
當(dāng) nodes[link.source]有值時(shí)將其賦給 link.source,不繼續(xù)執(zhí)行||后面的代碼;
當(dāng)nodes[link.source]沒(méi)有值時(shí),將{name: link.source}先賦值給nodes[link.source],再將nodes[link.source]賦值給link.source。始終保證link.source可以取到相應(yīng)的值。

2018年7月31日 19:51