VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • null与undefined到底有啥区别?

话不多说,直接先上结论: 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
复制代码

 

本文来自博客园,作者:不知名前端李小白,转载请注明原文链接:https://www.cnblogs.com/libo-web/p/15392956.html



相关教程