JavaScript基础03-null和undefined的异同

null和undefined有相同点,也有不同的地方,总结下异同点如下:

相同点

  1. Undefined类型衍生自Null类型,因此在使用相等比较符判断时会返回true

    console.log(null == undefined); // true
    
  2. null和undefined在if条件或while循环语句中都会被转换为false,使用Boolean()转型函数同样都会被转换为false。

    console.log(Boolean(null)); // false
    console.log(Boolean(undefined)); // false
    
  3. Null类型和Undefined类型都只有一个值

  4. null和undefined都没有对应的包装对象,因此在这两个类型上调用属性和方法时都会抛出异常。

    let a = null;
    let b;
    console.log(a.name); // Uncaught TypeError: Cannot read property 'name' of null
    console.log(b.name); // Uncaught TypeError: Cannot read property 'name' of undefined
    

不同点

  1. Null类型和Undefined类型是两种不同的基本类型,因此使用typeof操作符检测时会返回不同的值。

    console.log(typeof null); // 'object'
    console.log(typeof undefined); // 'undefined'
    

    因此使用全等操作符进行判断时会返回false。

    console.log(null === undefined); // false
    
  1. 需要进行字符串类型的转换时,null会转换成'null',undefined会转换成'undefined'。

  2. 转换成数字类型时,null会转换成0,而undefined则会转换成NaN。

    console.log(Number(null)); // 0
    console.log(Number(undefined)); // NaN
    
  3. 没必要给变量显式赋值为undefined,而当我们定义一个变量想要以后保存对象时,可以赋值null。

你可能感兴趣的:(JavaScript基础03-null和undefined的异同)