本文详细解析JavaScript中undefined和null的区别。两者在逻辑判断中均转为false且相等,但语义不同:null表示“没有对象”,常用于函数参数或原型链终点;undefined表示“缺少值”,出现在变量未赋值、参数缺失、属性未定义及函数无返回值等场景。
undefined和null的基本区别
JavaScript中undefined和null的区别
JavaScript中有两个表示“无”的值:undefined和null。在实际开发中,null的使用频率通常更高,而undefined则常在报错信息中出现。以下将对这两种数据类型的异同进行详细比较。
1. 在if语句中,undefined和null都会被自动转换为false,且相等运算符直接报告两者相等。
!null==!undefined==true
null的典型用法
2. null表示“没有对象”,即该处不应该有值。典型用法包括:
(1)作为函数的参数,表示该函数的参数不是对象。
(2)作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype) // null
undefined的典型用法
undefined表示“缺少值”,即此处应该有一个值,但尚未定义。典型用法包括:
(1)变量被声明了,但没有赋值时,其值等于undefined。
(2)调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
var i;
i // undefined
function f(x){console.log(x)}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!