if((typeof OA != 'undefined') && OA )
和有什么区别if(OA)
?
前一种说法有效;后者悄悄地停止当前功能的执行。
(可能是菜鸟问题)
谢谢!
if((typeof OA != 'undefined') && OA )
和有什么区别if(OA)
?
前一种说法有效;后者悄悄地停止当前功能的执行。
(可能是菜鸟问题)
谢谢!
if(OA)
OA
如果从未定义, 将失败。typeof OA != 'undefined'
检查是否OA
已定义。
var OA;
if(OA){
}
这行得通。
if(OA){
}
这不起作用:OA is not defined
.
typeof OA != 'undefined' && OA
在尝试访问变量之前检查它是否已定义
编译器不会尝试在 typeof 的情况下评估 OA,因为它会尝试在 if(OA) 中进行评估
if ((typeof OA != 'undefined') && OA)
这将首先检查变量OA
是否已定义。如果是,则将其转换为布尔值并进行评估。
if(OA)
这假设OA
存在并立即将其转换为布尔值并对其进行评估。
OA
如果变量从未被声明过,第二个例子将抛出一个 javascript 异常——第一个例子避免了这种情况。
有关javascript中多重含义的更多解释,请参见我的答案。undefined