在JavaScript中将某个变量赋值为undefined或null,实际上没有太大的差别,两者都是表示某个变量的值为“空”。
    Undefined 类型只有一个值,即 undefined。我们不会对一个值设置 undefined,一般都是出现错误的时候,才会被我们打印出来。
    null 类型是第二个只有一个值的数据类型,这个特殊的值是 null,null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测null时会返回”object”的原因。
    ————————————————
    版权声明:本文为CSDN博主「木森林哥哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_47021982/article/details/113152881

    1、undefined不是关键字,而null是关键字;
    image.png

    2、undefined和null被转换为布尔值的时候,两者都为false;
    image.png

    3、undefined在和null进行==比较时两者相等,全等于比较时两者不等
    image.png

    4、使用Number()对undefined和null进行类型转换
    image.png
    NaN是唯一一个和自身不相等的值:

    5、undefined本质上是window的一个属性,而null是一个对象;
    image.png
    image.png
    6、undefined和null的用途
    null表示没有对象,即不应该有值,经常用作函数的参数,或作为原型链的重点。
    undefined表示缺少值,即应该有值,但是还没有赋予(变量提升时默认会赋值为undefined,函数参数未提供默认为undefined,函数的返回值默认为undefined)

    undefined出现的场景:
    变量被声明了,但没有赋值时,就等于 undefined。
    调用函数时,应该提供的参数没有提供,该参数等于 undefined。
    对象没有赋值的属性,该属性的值为 undefined。
    函数没有返回值时,默认返回 undefined。

    null出现的场景:
    作为函数的参数,表示该函数的参数不是对象。
    作为对象原型链的终点。
    如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。
    将一个对象变为垃圾对象的时候,设置变量的值为 null。


    ————————————————
    版权声明:本文为CSDN博主「你吃香蕉吗?」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m0_47135993/article/details/119800231