JS中null、undefined、NaN的区别

文章类型:Javascript

发布者:hp

发布时间:2022-08-15

null 表示“没有对象”、“无”的对象,即该处不应该有值 ,原型链的终点

常见几种情况

一作为函数的参数,表示函数的参数为空

二作为对象原型链的终点

function getNum(a=null){
console.log(a) //null
}
getNum()
console.log(Object.getPrototypeOf(Object.prototype)) //nul

undefined表示“缺少值”,表示一个“无”的原始值,此处应该有一个值,只是现在还没有被定义

常见几种情况

一变量被申明了,但是没有赋值时。就是undefined

二调用函数时,应该提供的函数没有提供,就是undefined

三对象没有赋值的属性,该属性的值就是undefined

四 函数没有返回值时,默认就是undefined

<script>
let a;
console.log(a) //undefined
// console.log(getNum()) //Uncaught ReferenceError: getNum is not defined
function getNum2(){

}
let obj={
a
}
console.log(obj.a) //undefined
console.log(getNum2()) //undefined
</script>

NaN 表示一个特殊的数字值,表示不是一个合法的数字,并且它与任何类型都不相等,包括自己

<script>

var num=null
var num1=undefined
console.log(num==num1) //true
console.log(num===num1) //false
console.log(NaN==NaN) //false
</script>

在进行数字运算过程中 null会被转化为0 而undefined转化为NaN

let num=null
let num1=undefined
console.log(num+1) //1
console.log(num1+1) //NaN