if((typeof OA != 'undefined') && OA )
和if(OA)
之间有什么区别?
前一种说法有效;后者悄然停止执行当前功能。
(也许是菜鸟问题)
谢谢!
答案 0 :(得分:4)
if(OA)
, OA
将失败。 typeof OA != 'undefined'
检查是否定义了OA
。
var OA;
if(OA){
}
这很有效。
if(OA){
}
这不起作用:OA is not defined
。
typeof OA != 'undefined' && OA
在尝试访问变量
答案 1 :(得分:0)
编译器不会尝试在类型的情况下评估OA,而在其中尝试评估if(OA)
答案 2 :(得分:0)
if ((typeof OA != 'undefined') && OA)
这将首先检查变量OA
是否已定义。如果是,则将其转换为布尔值并进行评估。
if(OA)
这假设存在OA
并立即将其强制转换为布尔值并对其进行评估。
如果从未声明变量OA
,第二个示例将抛出一个javascript异常 - 第一个例子避免了这个。
有关javascript中undefined
的多重含义的详细说明,请参阅my answer here。