这些条件有何不同?

时间:2016-09-11 19:30:53

标签: javascript null conditional undefined conditional-statements

为什么这两个条件不同:

不正确:

if (myObj !== null && typeof myObj !== "undefined") 

因此,您必须首先测试typeof():

正确:

if (typeof myObj !== "undefined" && myObj !== null)

我把它从w3schools网站上取下来了。根据w3schools你必须首先测试typeof(),为什么这会产生影响。条件看起来是一样的

1 个答案:

答案 0 :(得分:6)

如果变量未声明,则第一个条件抛出错误

ReferenceError: myObj is not defined

请注意&&运算符是短路的,因此在第二种情况下,如果myObj未定义,则根本不会计算myObj !== null表达式。

有关详细信息,请参阅here