- 变量提升
console.log(num); //undefined
var num = 10;
- 函数没有返回值
function fn() {
var num = 1;
console.log(num);//1
}
console.log(fn());//undefined
- 数组下标不存在时,取值
var arr = [1, 2, 3];
console.log(arr[5]); //undefined
- 对象中属性名不存在时,取值
var obj = {
name: '唐诗雅',
age: 24
}
console.log(obj.weight); //undefined
- 定义变量,但未赋值
var a;
console.log(a); //undefined
- 继续用pop或shift方法删除空数组
var arr = [];
console.log(arr.pop()); //undefined
console.log(arr.shift()); //undefined
- 调用函数的实参个数小于形参时,未赋值的形参默认值为undefined
function fn(num1, num2, num3) {
return num3;
}
fn(10, 20); //undefined
- 函数 return 没有显式的返回任何内容
function fn() {
return;
}
console.log(fn()); //undefined
- 访问任何被设置为 undefined 值的变量
var flag = undefined;
console.log(flag); //undefined
- 对未初始化的变量执行typeof操作符会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值
var color;
console.log(typeof color); //undefined
- 逻辑运算符中对undefined进行&&
var type = undefined && 123 && "";
console.log(type); //undefined
- 获取字符串不存在的下标
var str = "123";
console.log(str[str.length]); //undefined
- 检测一个未定义的变量,值未undefined
typeof ccc //undefined