无标题文章

null和undefined到底有什么区别?

null 表示一个对象是“没有值”的值,也就是值为“空”;
undefined 表示一个变量声明了没有初始化(赋值);

var a;
console.log(typeof a);//undefined

undefined不是一个有效的JSON,而null是;

undefined的类型(typeof)是undefined;
null的类型(typeof)是object;

console.log(null instanceof Object); //false
console.log(typeof null); //object
console.log(typeof undefined); //undefined

Javascript将未赋值的变量默认值设为undefined;
Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的。


typeof undefined 和 typeof null

typeof undefined
//"undefined"
undefined :是一个表示"无"的原始值或者说表示"缺少值",就是此处应该有一个值,但是还没有定义。当尝试读取时会返回 undefined;
例如变量被声明了,但没有赋值时,就等于undefined

typeof null
//"object"
null : 是一个对象(空对象, 没有任何属性和方法);
例如作为函数的参数,表示该函数的参数不是对象;

注意:
在验证null时,一定要使用 === ,因为 == 无法分别 null 和 undefined

 console.log(null == undefined);   //true
 console.log(null === undefined);  //false

什么时候我们的变量值为null什么时候为undefined?

答案:变量的值永远都不可能为null,除非我们手动的赋值为null

为什么需要设置为null?

告诉系统这个变量不再使用,可以把占用的空间回收了


参考阅读
undefined与null的区别
前端开发面试题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • var a = 1; console.log(typeof a);// 'number' var b = '1';...
    zdnexus阅读 354评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,281评论 0 4
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,858评论 0 9
  • 1. CSS和JS在网页中的放置顺序是怎样的? csss:通过link标签将样式表放在顶部(head中)。js:通...
    谢梦扬_阅读 241评论 0 0
  • 各位看官别乱想,不是母子恋,父女恋之类的,而是对我的家庭父母和子女之间感情表达的能力已经让我接近奔溃边缘,让我觉得...
    kitty587阅读 848评论 0 0