Javascript未定义对象

Javascript undefined object

本文关键字:对象 未定义 Javascript      更新时间:2023-09-26

我知道检查变量是否未定义的最佳方法是

if ( typeof( something ) == "undefined") 

我不明白的是,什么时候变量未定义,什么时候对象未定义。例如,当我控制台.log()一个变量时,我得到

Object {detailedView: undefined}

我的问题是,为什么我会得到这个,而不是一个明确的定义。

a未定义。它是有定义的。这是一个物体。该对象恰好包含一个undefined属性,但变量本身并没有定义。

something没有定义,所以它是undefined

这里有两件事:"值"undefined,这是一个变量在声明但尚未赋值时(即var a;)可以指向的值,或者当它被赋值时,它实际上没有值或不存在,还有字符串"undefined",它是一个类似于"monkey"或"collywobble"的字符串。

在您的条件中,您正在测试typeof运算符的结果,它是一个字符串"对象"或"函数",在本例中是"未定义"。这些只是文字:

if(typeof a == "undefined")

与测试相同

if(a == undefined)

因此,当您console.log实际对象时,您会看到它的值为undefined,而不是字符串"undefined"

我相信你在问"未定义变量"(从未声明的变量)和"未定义值"(变量或属性中的值undefined)之间的区别。

您使用var关键字定义/声明一个变量:

var myVariable;

如果你这样做,那么这个变量的值就是undefined:

console.log(myVariable); // undefined

如果声明变量,则不能使用它:

console.log(myOtherVariable); // throws a ReferenceError

typeof:除外

typeof myOtherVariable == "undefined"; // true