Javascript文件的第一行是var w=w | |{};
这是我正在修改的JavaScript文件的第一行,它的作用是什么?jQuery也在文件中使用Javascript文件的第一行是var w=w | |{};,javascript,Javascript,这是我正在修改的JavaScript文件的第一行,它的作用是什么?jQuery也在文件中使用 var w = w || {}; 据我所知,| |是一个逻辑运算符,这是Mozilla文档中的引用。 逻辑运算符通常与布尔(逻辑)值一起使用。如果是,则返回一个布尔值。但是,&&和| |运算符实际上返回指定操作数之一的值,因此,如果这些运算符与非布尔值一起使用,则它们可能返回非布尔值 如果w为“truthy”,则将w设置为w的当前值;如果w为“falsy”,则将w设置为空对象 Falsy值包括NaN
var w = w || {};
据我所知,| |是一个逻辑运算符,这是Mozilla文档中的引用。
逻辑运算符通常与布尔(逻辑)值一起使用。如果是,则返回一个布尔值。但是,&&和| |运算符实际上返回指定操作数之一的值,因此,如果这些运算符与非布尔值一起使用,则它们可能返回非布尔值
如果
w
为“truthy”,则将w
设置为w
的当前值;如果w
为“falsy”,则将w
设置为空对象
Falsy值包括NaN
,null
,未定义
,0
,空字符串
,当然还有false
其他一切都是真实的
本质上,如果w不是一个对象,它会确保w是一个对象。如果w是“真实的”,它会将w设置为w的当前值;如果w是“虚假的”,它会将w设置为空对象 Falsy值包括
NaN
,null
,未定义
,0
,空字符串
,当然还有false
其他一切都是真实的
本质上,如果w不是一个对象,它确保w是一个对象。如果w包含一个非false的值,它将w分配给w,否则,它将w设置为空对象。如果w包含一个非false的值,它将w分配给w,否则,它将w设置为空对象。您应该将该行视为该行的缩短版本
// declare w as a variable
var w;
// if w is already declared, leave it
if (!w) {
// if not make it an empty object
w = {};
}
在全局上下文中(我确信这是定义的),使用var不会覆盖现有的全局上下文
因此,基本上,您要确保有一个名为w的var,您可以在其上存储属性。您应该将该行视为该行的缩短版本
// declare w as a variable
var w;
// if w is already declared, leave it
if (!w) {
// if not make it an empty object
w = {};
}
在全局上下文中(我确信这是定义的),使用var不会覆盖现有的全局上下文
因此,基本上,您要确保有一个名为w的var,您可以在其上存储属性。这是为了检查“w”是truthy还是falsy 如果“w”具有以下任何值,则为falsy:
false
0
""
null
undefined
NaN
如果表达式(w | |{})
不是一个伪值,它将返回“w”。否则,它将返回一个空数组。因此,当您在表达式中将它赋给“w”时:var w=w | |{}代码>
这只是一种确保“w”不是虚假值的方法,如果以后在代码中使用它,也不会抛出任何错误。这是为了检查“w”是真实的还是虚假的
如果“w”具有以下任何值,则为falsy:
false
0
""
null
undefined
NaN
如果表达式(w | |{})
不是一个伪值,它将返回“w”。否则,它将返回一个空数组。因此,当您在表达式中将它赋给“w”时:var w=w | |{}代码>
这只是一种确保“w”不是虚假值的方法,如果以后在代码中使用它,也不会引发任何错误。可能的重复检查w是否已定义,如果未定义,则为其分配一个空对象。可能的重复检查w是否已定义,如果未定义,它给它分配了一个空对象。{}
的可能重复项不是数组。@GergoErdosi是的,我打错了。已修复。{}
不是数组。@GergoErdosi是的,我打错了。固定的。