undefined

1、声明变量未给其赋值

1)函数词法作用域内,变量提升

var str = "123";
function  add1() {
    console.log(str)  // undefined
    var str = "456";
}
add1()

这里str 的值为undefined , 因为在词法分析完,构建函数作用域链的时候,函数局部变量已经声明未进行赋值,函数内部都是可见的。

2、return关键字后没有任何表达式,则该函数返回undefined

3、读取一个不存在的属性

4、获取不存在的数组元素

var arr = []
console.log(arr[1]) //undefined

5、函数参数,当实参个数少于形参个数时,多余的形参为undefined

function  add1(a,b,c) {
    console.log(a)   // 1
    console.log(b)   // undefined
    console.log(c)   // undefined
}
add1(1)

6、let变量不属于全局属性

let  g = 3
console.log(window.g)  //undefined

7、解构不成功

let [a,b,c,d] =  [1,2,3]
console.log(d)  //undefined
原文地址:https://www.cnblogs.com/yuyedaocao/p/12033584.html