或者运算符在这个JavaScript中做了什么?

时间:2011-02-01 14:06:20

标签: javascript

所以我浏览JQuery源代码以获得更好的编程技巧,我发现了一些代码,我不知道发生了什么。

type = type || callback;

任何人都可以解释一下OR ||正在进行变量赋值?

我做了一些实验,设置和取消设置值以及什么不是,但我不是更聪明。

3 个答案:

答案 0 :(得分:9)

如果type是“falsey”值,则callback的值将分配给type变量,否则将分配type

“假”值是:

  • false
  • null
  • undefined
  • 0
  • ""(空字符串)
  • NaN

基本上,如果type是任何一个假名“,那么callback替换为type

考虑一下:

var type = undefined;

type = type || "default value";

type变量最终会被"default value"分配。

如果是这样的话:

var type = "some value";

type = type || "default value";

然后它会保留"some value"

答案 1 :(得分:2)

如果当前值不是“truthy”,它将变量“type”设置为其当前值或“callback”值。如果“type”是undefined,或null,或0,或空字符串,或布尔false,那么它将被设置为“callback”的值。

编辑 oops或NaN

答案 2 :(得分:0)

所以我看到多个变量可以“链接”在一起并且分配了第一个“非假名”值。

var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);

这非常方便。