所以我正在瀏覽JQuery源代碼以獲得更好的編程技巧,並且我發現了一些代碼,我不知道發生了什麼。這位或者操作符在JavaScript中做了些什麼?
type = type || callback;
誰能解釋一下OR ||在變量賦值中做什麼?
我做了一些實驗,設置和取消設置值和什麼不是,但我不明智。
所以我正在瀏覽JQuery源代碼以獲得更好的編程技巧,並且我發現了一些代碼,我不知道發生了什麼。這位或者操作符在JavaScript中做了些什麼?
type = type || callback;
誰能解釋一下OR ||在變量賦值中做什麼?
我做了一些實驗,設置和取消設置值和什麼不是,但我不明智。
如果type
是一個「falsey」值,那麼callback
值將被分配給type
變量,否則type
將被分配。
的 「falsey」 的值是:
false
null
undefined
0
""
(空字符串)NaN
所以基本上它說:「與callback
如果type
是falsey值中的任何一個取代type
」。
考慮一下:
var type = undefined;
type = type || "default value";
的type
變量將最終得到"default value"
分配。
如果是這樣的:
var type = "some value";
type = type || "default value";
然後它會保持其"some value"
。
它將變量「type」設置爲其當前值,如果當前值不是「truthy」,則將該變量設置爲「callback」的值。如果「類型」是undefined
或null
或0,或空字符串或布爾型false
,則它將被設置爲「回調」的值。
編輯哎呀或NaN
所以我看到多個變量可以被「鏈接」在一起,第一個「非falsey」的價值分配。
var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);
這非常方便。
謝謝@Gareth。 :o) – user113716 2011-02-01 14:15:28
生氣你們快!這真是太棒了。 – Craig552uk 2011-02-01 14:19:45