所以我正在浏览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