为什么被null认为是objectJavaScript?
正在检查
if ( object == null )
Do something
Run Code Online (Sandbox Code Playgroud)
同样的
if ( !object )
Do something
Run Code Online (Sandbox Code Playgroud)
?
并且:
null和之间有什么区别undefined?
我遇到过以下代码:
function test(data) {
if (data != null && data !== undefined) {
// some code here
}
}
Run Code Online (Sandbox Code Playgroud)
我对JavaScript很新,但是,从我在这里读过的其他问题来看,我的印象是这段代码没有多大意义.
如果在除了以外的任何上下文中访问未定义的变量,您将收到错误typeof.
更新:上述答案(引用)可能会产生误导.应该说"一个未声明的变量",而不是"一个未定义的变量".
正如我在Ryan♦,maerics和nwellnhof的回答中所发现的那样,即使没有为函数提供参数,也始终声明其参数的变量.这个事实也证明了下面列表中的第一项是错误的.
根据我的理解,可能会遇到以下情况:
调用该函数时没有参数,从而生成data一个未定义的变量,并引发错误data != null.
该函数专门用null(或undefined)作为其参数调用,在这种情况下data != null已经保护内部代码,使得&& data !== undefined无用.
该函数使用非null参数调用,在这种情况下,它将平凡地传递两个data != null 和 data !== undefined.
问:我的理解是否正确?
我在Firefox的控制台中尝试了以下内容:
--
[15:31:31.057] false != null
[15:31:31.061] true
-- …Run Code Online (Sandbox Code Playgroud)