这些条件有何不同?

iru*_*ker 5 javascript null conditional undefined conditional-statements

为什么这两个条件不同:

不正确:

if (myObj !== null && typeof myObj !== "undefined") 
Run Code Online (Sandbox Code Playgroud)

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

正确:

if (typeof myObj !== "undefined" && myObj !== null)
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*dym 6

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

ReferenceError: myObj is not defined

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

详情请见此处.