通常我们可以通过以下方式声明变量:
var myVar1 = "Hello";
var myVar2 = true;
当它以对象方式放置时,它将如下所示:
var globalVar = {
myVar1: "Hello",
myVar2: true
}
如何在不分配任何内容的情况下声明变量,例如 var myVar3;
对象方式?
谢谢。
如何在不赋值任何东西的情况下声明一个变量,例如 var myVar3; 以对象方式?
你不能。但是你可以得到相同的结果:
var globalVar = {
myVar1: undefined,
myVar2: undefined
};
当你用 var
声明一个变量时,该变量的初始值为 undefined
。因此,上述操作对对象属性执行相同的操作。
使用 undefined 在技术上是正确的,但几乎没有意义,您最好使用 NULL 声明变量,请考虑以下代码:
var obj = {
oUn : undefined,
oNull : null
};
document.body.appendChild(document.createTextNode(
typeof obj.oUn
+ ' ' + typeof obj.oNull
+ ' ' + typeof obj.doesNotExist
));
虽然是的,在FireBug中,也许其他调试器(没有检查)obj.oUn确实出现了,但是如果你尝试在JS中检查它,你会得到与它甚至没有定义相同的结果。(请注意,"typeof obj.doesNotExist"返回的值与"typeof obj.oUn"相同,尽管它没有定义)。虽然话虽如此,如果您在 for 循环中检查它,您确实会得到它,即这将显示 obj。联合国
var obj = {
oUn : undefined,
oNull : null
};
document.body.appendChild(document.createTextNode(
typeof obj.oUn
+ ' ' + typeof obj.oNull
+ ' ' + typeof obj.doesNotExist
));
document.body.appendChild(document.createElement('br'));
var name;
for(name in obj) {
document.body.appendChild(document.createTextNode(name));
document.body.appendChild(document.createElement('br'));
}
所以我想这取决于你为什么需要它。总的来说,我会说如果你不需要每个名称(即你的代码已经知道这个名字),那么甚至不要声明它,而只是使用
var globalVar = {};
一旦你需要它,你总是可以在以后扩展它,或者如果你需要它,然后使用 NULL,因为你实际上可以通过检查值是否为 NULL 来检查 JS 是否正在使用。使用 undefined,您将无法知道,因为它与未使用的值完全没有区别,您需要创建一个繁琐的辅助函数才能找出答案。