2011-02-01 54 views
4

所以我正在浏览JQuery源代码以获得更好的编程技巧,并且我发现了一些代码,我不知道发生了什么。这位或者操作符在JavaScript中做了些什么?

type = type || callback; 

谁能解释一下OR ||在变量赋值中做什么?

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

回答

9

如果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"

+0

谢谢@Gareth。 :o) – user113716 2011-02-01 14:15:28

+0

生气你们快!这真是太棒了。 – Craig552uk 2011-02-01 14:19:45

2

它将变量“type”设置为其当前值,如果当前值不是“truthy”,则将该变量设置为“callback”的值。如果“类型”是undefinednull或0,或空字符串或布尔型false,则它将被设置为“回调”的值。

编辑哎呀或NaN

0

所以我看到多个变量可以被“链接”在一起,第一个“非falsey”的价值分配。

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

这非常方便。

相关问题