JavaScript中undefined和null的区别

作者:拾光

时间:2026-10-22

浏览:607

本文详细解析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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章