undefined与null类型
undefined
undefined 属性用于存放 JavaScript 中未定义的值。
常见出现undefined的场景
1 2 3 4 5
   | let obj = {     name: 'node',     age: 10 } console.log(obj.sex);   
  | 
 
1 2
   | function func(){} console.log(func());   
  | 
 
1 2 3 4
   | function func1(a, b){     console.log(b); } func1(1);    
  | 
 
null
特指对象的值未设置
常见出现null的场景
- 变量为了保存后面得到的值,前面定义一个变量赋值为
null 
1 2 3 4 5
   | let name = null; function getName(){     return "node" } name = getName();
   | 
 
- javaScript在获取DOM元素时,如果没有获取指定的元素对象,就会返回
null 
1
   | document.getElementById("id");    
  | 
 
- 在使用正则表达式进行捕获时,如果没有捕获结果,就会返回
null 
undefined和null异同
- 相同点
 
- 在将两者转换为对象时,都会抛出一个TypeError的异常,也就是引用异常
 
1 2 3 4 5
   | let c; let b = null;
  console.log(c.name);    console.log(b.name);   
   | 
 
- 不同点
 
- 在typeof检测时,undefined类型的值会返回’undefined’,而null返回object
 
1
   | console.log(typeof(undefined), typeof(null));    
   | 
 
- 在进行数值转换时,undefined转换为NaN,而null转换为0
 
1
   | console.log(null + 1, undefined + 1);   
   |