欢迎光临
我的个人博客网站

null与undefined到底有啥区别?


话不多说,直接先上结论: nullundefined 基本相同,只有细微差别

  • null 是表示缺少的标识,指示变量未指向任何对象,转为数值为 0
  • undefined 表示 “缺少值”,即该处应该有值,但还没有定义,转为数值为 NaN
//(1)null转为数值为0 console.log(Number(null));//0 console.log(null+3);//3 console.log(null == null);//true console.log(null === null); //true console.log(isNaN(null));false  //(2)undefined转为数值为NaN console.log(Number(undefined));//NaN(not a number) console.log(3+undefined);//NaN console.log(isNaN(undefined));//true  //(3)null和undefined比较 console.log(null == undefined); //true,存在隐式类型转换 console.log(null === undefined);//false /* "==="表示全等,二者类型不同,所以为false */ console.log(typeof null);//object数据类型 console.log(typeof undefined);//undefined数据类型

null 应用场景:

(1)作为函数的参数,表示该函数的参数不是对象

(2)作为对象原型链的终点

console.log(Object.getPrototypeOf(Object.prototype));//null

undefined 应用场景:

(1)一个没有被赋值的变量的类型是undefined

(2)调用函数时,应该提供的参数没有提供,该参数为undefined

(3)对象没有赋值的属性,该属性的值为undefined

(4)一个函数如果没有使用return语句指定返回值,就会返回undefined

//(1)变量未赋值         let a console.log(a);//undefined  //(2)函数参数未赋值 (function fn(x) {     console.log(x); //undefined })()  //(3)对象属性未赋值 let obj = {     name:'张三' } console.log(obj.name); console.log(obj.age);//undefined  //(4)函数没有返回值 function fn(){} var x = fn(); console.log(x);//undefined

 

赞(0) 打赏
未经允许不得转载:张拓的天空 » null与undefined到底有啥区别?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏