在查看在线源代码时,我在几个源文件的顶部偶然发现了这一点。
var FOO = FOO || {};
FOO.Bar = …;
但我不知道|| {}
是做什么的。
我知道{}
等同于new Object()
,我认为||
类似于“如果它已经存在,则使用它的值,否则使用新对象”。
为什么我会在源文件的顶部看到这个?
发布于 2011-06-22 20:15:09
var AEROTWIST = AEROTWIST || {};
基本上,这一行的意思是将AEROTWIST
变量设置为AEROTWIST
变量的值,或者将其设置为空对象。
双管道||
是一条OR语句,只有当第一部分返回false时,才会执行OR的第二部分。
因此,如果AEROTWIST
已经有一个值,它将被保留为该值,但是如果它以前没有被设置过,那么它将被设置为一个空对象。
这基本上等同于这样说:
if(!AEROTWIST) {var AEROTWIST={};}
希望这能有所帮助。
发布于 2011-11-19 00:57:08
||的另一个常见用法是为未定义的函数参数设置默认值:
function display(a) {
a = a || 'default'; // here we set the default value of a to be 'default'
console.log(a);
}
// we call display without providing a parameter
display(); // this will log 'default'
display('test'); // this will log 'test' to the console
其他编程中的等价物通常是:
function display(a = 'default') {
// ...
}
发布于 2011-06-22 20:13:07
如果AEROTWIST中没有值,或者AEROTWIST为null或未定义,则分配给新AEROTWIST的值将为{} (空白对象)
https://stackoverflow.com/questions/6439579
复制相似问题