or运算符在这段JavaScript中做什么?
所以我在浏览JQuery源代码以获得更好的编程技巧,我发现了一些我不确定发生了什么的代码or运算符在这段JavaScript中做什么?,javascript,Javascript,所以我在浏览JQuery源代码以获得更好的编程技巧,我发现了一些我不确定发生了什么的代码 type = type || callback; 有人能解释一下OR | |在变量赋值中的作用吗 我做了一些实验,设置和取消设置值等等,但我一点也不知道。如果type是一个“假”值,那么callback的值将分配给type变量,否则将分配type var val, a, b, c; a = undefined; b = null; c = "C"; val = a || b || c; alert(val
type = type || callback;
有人能解释一下OR | |在变量赋值中的作用吗
我做了一些实验,设置和取消设置值等等,但我一点也不知道。如果type
是一个“假”值,那么callback
的值将分配给type
变量,否则将分配type
var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);
“假”值为:
false
null
未定义
0
(空字符串)”
NaN
type
是任何一个错误值,则用callback
替换type
”
考虑这一点:
var type = undefined;
type = type || "default value";
类型
变量最终将被分配“默认值”
var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);
如果是这样的话:
var type = "some value";
type = type || "default value";
然后它将保留其“some value”
它将变量“type”设置为其当前值,或者如果当前值不是“truthy”,则设置“callback”的值。如果“type”是undefined
,或null
,或0,或空字符串,或布尔值false
,则将其设置为“callback”值
编辑oops或
NaN
以便我看到多个变量可以“链接”在一起,并分配第一个“非错误”值
var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);
那真他妈的方便。a | | |(b | | c)
我觉得不对。您不需要检查默认值是否为falsy。