JavaScript中undefined和null的区别
本文详细解析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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
