undefined的几种情况

163 阅读1分钟

一、以下几种情况会导致undefined 参考

  • 声明的变量未赋值
      var a ;
      console.log(a) //undefined
    
  • 对象中的属性值不存在
    var obj = {
        name:'chenhao',
        age:22
    }
    console.log(obj.person) //undefined
    console.log(obj.person[1])//取值会报错
    
  • 数组中的属性值不存在
    var arr = ['aa','',bb','cc','dd'] 稀疏数组的值也是undefined
    console.log(arr[1]) //undefined
    console.log(arr[6]) //undefined
    
  • viod操作
    
    
  • 函数return 无内容
function fn() {
    var sum = a + b
    sum
    //函数不return默认返回undefined
}  
function fn() {
    var sum = a + b
    return  //return 后面为空返回undefined
    sum
} 

二、判断undefined的几种方式

  • obj.prop == undefined
  • typeof obj.prop == 'undefined'

三、检查属性是否存在

  • obj.prop !== undefined
  • typeof obj.prop == 'undefined'
  • obj.hasOwnProperty('prop')
  • 'prop' in obj
  • 建议是使用 in 操作符,它的语法短小精悍。in操作符的存在表明一个明确的意图,即检查对象是否具有特定的属性,而不访问实际的属性值。

四、默认解构

var {name="chenhao", age=22} = {name:'ccc'}
console.log(name) //ccc
console.log(age) //22  
---------------------------
var {name="chenhao", age=22} = {name:'',age:33}
console.log(name) //'' 除非name属性没有
console.log(age) //33