示例1
undefined 派生自 null,null 和 undefined 都表示空缺的值,转化为布尔值时都是假值,可以相等。console.log(null == undefined); //返回 true
null 和 undefined 属于两种不同类型,使用全等运算符(==)或 typeof 运算符可以进行检测。
console.log(null === undefined); //false console.log(typeof null); //返回"object" console.log(typeof undefined); //返回"undefined"
示例2
检测一个变量是否初始化,可以使用 undefined 快速检测。var a; //声明变量 console.log(a); //返回变量默认值为 undefined (a == undefined) && (a = 0); //检测变量是否初始化,否则为其赋值 console.log(a); //返回初始值 0
也可以使用 typeof 运算符检测变量的类型是否为 undefined。
(typeof a == "undefined") && (a = 0); //检测变量是否初始化,否则为其赋值
示例3
在下面代码中,声明了变量 a,但没有声明变量 b,然后使用 typeof 运算符检测它们的类型,返回的值都是字符串 "undefined"。说明不管是声明的变量,还是未声明的变量,都可以通过 typeof 运算符检测变量是否初始化。var a; console.log(typeof a); //返回"undefined” console.log(typeof b); //返回"undefined"
对于未声明的变量 b 来说,如果直接在表达式中使用,会引发异常。
console.log(b == undefined); //提75未定义的错误信息
示例4
对于函数来说,如果没有明确的返回值,则默认返回值也为function f(){} console.log(f()); //返回"undefined"
undefined 隐含着意外的空值,而 null 隐含着意料之中的空值。因此,设置一个变量、参数为空值时,建议使用 null,而不是 undefined。