美文网首页
null,undefined的区别

null,undefined的区别

作者: 简单tao的简单 | 来源:发表于2023-12-25 09:17 被阅读0次

    null

    null是一个表示"无"的对象
    null 的字面意思是:空值 。这个值的语义是,希望表示 一个对象被人为的重置为空对象,而非一个变量最原始的状态 。 在内存里的表示就是,栈中的变量没有指向堆中的内存对象

    用法:
    • 用来初始化一个变量,这个变量可能被赋值为一个对象。
    • 当一个对象被赋值了null 以后,原来的对象在内存中就处于游离状态,GC 会择机回收该对象并释放内存。因此,如果需要释放某个对象,就将变量设置为 null,即表示该对象已经被清空,目前无效状态。
    • 作为对象原型链的终点。
    类型转换

    typeof null : object
    布尔值 false
    数字0
    字符串‘null’

    undefind

    undefined表示“缺少值”,即此处应该有一个值,但是还没有定义

    用法
    • 变量被声明了,但没有赋值时,就等于undefined。
    • 调用函数时,应该提供的参数没有提供(函数定义了形参,但没有传递实参
      ),该参数等于undefined。
    • 访问对象或数组上不存在的属性,会返回undefined。
    • 函数没有返回值时,默认返回undefined。
    类型转换

    typeof undefined : undefined
    布尔值 false
    数字NaN
    字符串'undefined'

    如何检测它们?

    ==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。

    console.log(null == undefined) //true
    console.log(null === undefined) //false
    

    检测undefined

    var exp = undefined;
    if (typeof (exp) == 'undefined') {
        alert("undefined");
    }
    

    检测null

    var exp = null;
    if (!exp && typeof (exp) != "undefined" && exp != 0) {
        alert("is null");
    }   
    

    相关文章

      网友评论

          本文标题:null,undefined的区别

          本文链接:https://www.haomeiwen.com/subject/psfkndtx.html