null和undefined区别

undefined

undefined: 对象变量了,但是未定义。值是undefined

当使用var 或者let声明一个变量没有初始化时,就相当于给变量赋予了一个undefined值

默认情况下,任何未经初始化的变量都会取得 undefined 值。

typeof undefined    // undefined


null

null: null表示一个空值。

从逻辑上来说,null 值表示一个空对象指针,这也是给typeof 传一个 null 会返回"object"的原因

typeof null   // object

在定义将来要保存对象值的变量时,建议使用 null 来初始化,不要使用其他值。这样,只要检查这个变量的值是不是 null 就可以知道这个变量是否在后来被重新赋予了一个对象的引用


区别:

1、undefined 值是由 null 值派生而来的

  用等于操作符(==)比较 null 和 undefined 始终返回 true。但要注意,这个操作符会为了比较而转换它的操作数。

2、即使 null 和 undefined 有关系,它们的用途也是完全不一样的。

   永远不必显式地将 变量值设置为 undefined。但 null 不是这样的。任何时候,只要变量要保存对象,而当时又没有那个对象可保存,就要用 null 来填充该变量。这样就可以保持 null 是空对象指针的语义,并进一步将其与 undefined 区分开来。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容