加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

null与undefined到底有啥区别?

发布时间:2022-08-03 10:13:15 所属栏目:PHP教程 来源:互联网
导读:话不多说,直接先上结论: null 和 undefined 基本相同,只有细微差别 null 是表示缺少的标识,指示变量未指向任何对象,转为数值为 0 undefined 表示 缺少值,即该处应该有值,但还没有定义,转为数值为 NaN 复制代码 //(1)null转为数值为0 console.log(Num
  话不多说,直接先上结论: null 和 undefined 基本相同,只有细微差别
  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

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读