Javascript未定义对象
我知道检查变量是否未定义的最好方法是Javascript未定义对象,javascript,undefined,Javascript,Undefined,我知道检查变量是否未定义的最好方法是 if ( typeof( something ) == "undefined") 我不明白的是何时变量未定义,何时对象未定义。 例如,当我在console.log()中输入一个变量时 Object {detailedView: undefined} 我的问题是为什么我得到这个,而不是一个简单的未定义的 a不是未定义的。它的定义。它是一个物体。该对象恰好包含一个未定义的属性,但变量本身并没有定义 某些东西没有定义,因此它是未定义的一个没有定义。它的定义。
if ( typeof( something ) == "undefined")
我不明白的是何时变量未定义,何时对象未定义。
例如,当我在console.log()中输入一个变量时
Object {detailedView: undefined}
我的问题是为什么我得到这个,而不是一个简单的未定义的
a
不是未定义的。它的定义。它是一个物体。该对象恰好包含一个未定义的属性,但变量本身并没有定义
某些东西
没有定义,因此它是未定义的
一个
没有定义。它的定义。它是一个物体。该对象恰好包含一个未定义的属性,但变量本身并没有定义
有些东西
没有定义,所以它是未定义的
这里有两个东西:值未定义的
,这是一个变量在声明但尚未赋值时可以指向的值(即变量a;
),或者当它被分配了一个实际上没有值或不存在的东西,并且有字符串“undefined”
,这是一个类似于“monkey”或“collywobble”的字符串
在条件语句中,您正在测试typeof
运算符的结果是什么,它是字符串“object”或“function”,在本例中是“undefined”。这只是一句话:
if(typeof a == "undefined")
与测试相同
if(a == undefined)
因此,当您对实际对象进行console.log时,您将看到它有一个值
未定义
,而不是一个字符串“未定义”
,这里有两件事:值未定义
,这是一个变量在声明但尚未赋值时可以指向的值(即变量a;
),或者当它被分配了一个实际上没有值或不存在的东西,并且有字符串“undefined”
,这是一个类似于“monkey”或“collywobble”的字符串
在条件语句中,您正在测试typeof
运算符的结果是什么,它是字符串“object”或“function”,在本例中是“undefined”。这只是一句话:
if(typeof a == "undefined")
与测试相同
if(a == undefined)
因此,当您在console.log中记录实际对象时,您将看到它有一个值
未定义
,而不是一个字符串“未定义”
,我相信您是在问“未定义变量”(从未声明的变量)和“未定义值”(变量或属性中的值未定义
)之间的区别
使用var
关键字定义/声明变量:
var myVariable;
如果您只是这样做,那么该变量的值是undefined
:
console.log(myVariable); // undefined
如果未声明变量,则无法使用它:
console.log(myOtherVariable); // throws a ReferenceError
。。。除了类型的
:
typeof myOtherVariable == "undefined"; // true
我相信您是在问“未定义变量”(从未声明的变量)和“未定义值”(变量或属性中的值
undefined
)之间的区别
使用var
关键字定义/声明变量:
var myVariable;
如果您只是这样做,那么该变量的值是undefined
:
console.log(myVariable); // undefined
如果未声明变量,则无法使用它:
console.log(myOtherVariable); // throws a ReferenceError
。。。除了类型的
:
typeof myOtherVariable == "undefined"; // true