相关疑难解决方法(0)

为什么null是一个对象,null和undefined之间有什么区别?

为什么被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

javascript null typeof object undefined

855
推荐指数
12
解决办法
54万
查看次数

JavaScript null检查

我遇到过以下代码:

function test(data) {
    if (data != null && data !== undefined) {
        // some code here
    }
}
Run Code Online (Sandbox Code Playgroud)

我对JavaScript很新,但是,从我在这里读过的其他问题来看,我的印象是这段代码没有多大意义.


特别是,这个答案说明了这一点

如果在除了以外的任何上下文中访问未定义的变量,您将收到错误typeof.

更新:上述答案(引用)可能会产生误导.应该说"一个未声明的变量",而不是"一个未定义的变量".

正如我在Ryan♦,maericsnwellnhof的回答中所发现的那样,即使没有为函数提供参数,也始终声明其参数的变量.这个事实也证明了下面列表中的第一项是错误的.


根据我的理解,可能会遇到以下情况:

  • 调用该函数时没有参数,从而生成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)

javascript null undefined null-check

158
推荐指数
4
解决办法
42万
查看次数

标签 统计

javascript ×2

null ×2

undefined ×2

null-check ×1

object ×1

typeof ×1