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