美文网首页
js中null和undefined的区别

js中null和undefined的区别

作者: 天渺工作室 | 来源:发表于2023-03-17 15:16 被阅读0次

    js中null和undefined的区别?这也是一个常见的js面试题

    相同点

    1,都是基本类型。
    2,做判断值都是false。

    !!null === false // true
    !!undefined === false // true
    

    不同点

    1,诞生时间null在前,undefined在后。因为js作者Brendan-Eich在创造js语言时,直接抄了java很多东西。也包括null,后期发现js中的null有缺陷,又创造了undefined。(《JavaScript高级程序设计》中有说,下面的不同点就包含null缺点)

    2,typeof 类型不同

    typeof null; // 'object'
    typeof undefined; // 'undefined'
    

    3,Number() 转数字也不同

    Number(null); // 0
    Number(undefined); // NaN     (Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。
    

    4,前端开发中出现的时机不同
       (1) null 触发null的时机

    // 举例
    
    // 获取不存在的dom
    document.getElementById("233") // null
    
    // 获取不存在的储存
    localStorage.getItem("233") // null
    sessionStorage.getItem('233') // null
    ...
    

       (2) 触发undefined的时机

    // 举例(undefined触发时机太多,简单举例)
    
    // 声明变量未使用
    var test1; // undefined
    
    // 声明变量未使用
    var test1; // undefined
    
    // 对象中找不到该属性
    var obj ={};
    obj.a;  // undefined
    ...
    

    5,函数参数有默认值时,当参数使用时默认参数 是否生效 效果不同。

    function demo(data = '233'){
       console.log('_______'+data);
    };
    demo(null); // _______null
    demo(undefined); // _______233
    

    总结

    null本质是一个表示"无值"的对象,算是一个特殊值。

    undefined是一个表示"还没有定义"的原始类型。

    相关文章

      网友评论

          本文标题:js中null和undefined的区别

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