JavaScript undefined 详细介绍
1、JavaScript的undefined的特点
在JavaScript中,undefined是JavaScript的原始数据类型之一,所以在未被声明的变量使用typeof操作符检测数据类型时返回undefined。同时,undefined也是一个原始值数据,当一个声明了但是未初始化的变量会默认赋值为字符串“undefined”。
undefined是全局对象上的一个属性。当我们直接输出全局window对象时,就可以找到undefined的存在,当然也可以直接输出window.undefined得到undefined。
2、什么情况下会出现undefined呢?
2.1、已声明但未被初始化的变量默认赋值undefined
let a;
console.log(a);//undefined
2.2、未被声明的变量使用typeof操作符检测数据类型时返回undefined
console.log(typeof a)//undefined
2.3、当函数没有明确指定返回值时,默认返回undefined
function fun(){
console.log("hello");
}
console.log(fun());//函数默认会返回一个undefined
2.4、viod()返回undefined
使用viod操作任何值返回的都是undefined,以下代码均输出undefined
console.log(void(0));//undefined
console.log(void("hello"));//undefined
因此在一些比较久远的代码中,偶尔会看到这样的代码
<a href="javascript:void(0)"></a>//阻止超链接跳转
viod获取到的undefined其实就是全局对象window中的undefined。比如:
console.log(void(0)===window.undefined)//true
console.log(void(0)===undefined);//true
3、错误使用undefined
判断一个对象是否为undefined,不应该这样:
if (obj== undefined){
...
}
而应该这样的:
if (typeof(obj) == "undefined") {
...
}
判断一个变量是不是undefined,用typeof函数,typeof函数主要是返回的是字符串,主要这么几种:“number”、“string”、“boolean”、“object”、“function”、“undefined”。