JavaScript variable === undefined
vs. typeof variable === "undefined"
的区别
Undefined是在变量已经定义但尚未被赋值时出现的情况。 Undefined不是一个关键字。当函数没有返回值时,也可以是undefined。
确定变量是否未定义有两种方式,即值和类型。
显然,你给一个未定义的变量赋值了,但是这个变量确实存在。在这里,你将geeks变量与全局变量“undefined”进行比较,而这个全局变量也是未定义的。
语法:
- 按值检查(Strict equality Operator): 这里你将得到变量是否已被赋值,如果变量没有被赋值,将显示undefined。
- 按类型检查(Typeof operator): 这里你将得到变量的类型,如果没有被赋值,则显示“undefined”。
注意: 严格相等操作符(===
)不检查变量是否为null。typeof操作符在变量未声明时不会报错。
示例: 这里我们分配了两个变量,一个是undefined,另一个定义为“null”,当你使用console.log时,它会显示“null”,如果你检查typeof,它将显示对象,下面的程序将更清楚地说明这个方法。
输出:
variable === undefined
VS typeof variable === "undefined"
variable === undefined |
typeof variable === "undefined" |
---|---|
这里被赋值的变量没有任何值,但变量存在。 | 这里变量的类型是未定义的。 |
如果你赋了一个值 (var geeks === undefined ) ,它就会显示,如果没有赋值,它也会显示为未定义但意义不同。 |
这里的 “undefined” 是 typeof 未定义。 |
在这种情况下,如果你给一个变量赋了 null,null 将会显示,null 宽松地等于未定义。 | 但是在这里 typeof 将显示对象。 |