3

if((typeof OA != 'undefined') && OA )和有什么区别if(OA)

前一种说法有效;后者悄悄地停止当前功能的执行。

(可能是菜鸟问题)

谢谢!

4

3 回答 3

4

if(OA)OA如果从未定义, 将失败。typeof OA != 'undefined'检查是否OA已定义。

var OA;
if(OA){
}

这行得通。

if(OA){
}

这不起作用:OA is not defined.

typeof OA != 'undefined' && OA在尝试访问变量之前检查它是否已定义

于 2012-04-17T17:12:16.020 回答
0

编译器不会尝试在 typeof 的情况下评估 OA,因为它会尝试在 if(OA) 中进行评估

于 2012-04-17T17:12:33.690 回答
0
if ((typeof OA != 'undefined') && OA)

这将首先检查变量OA是否已定义。如果是,则将其转换为布尔值并进行评估。

if(OA)

这假设OA存在并立即将其转换为布尔值并对其进行评估。

OA如果变量从未被声明过,第二个例子将抛出一个 javascript 异常——第一个例子避免了这种情况。

有关javascript中多重含义的更多解释,请参见我的答案。undefined

于 2012-04-17T17:20:34.543 回答