JavaScript 中的对象变量

Object variable in JavaScript

本文关键字:变量 对象 JavaScript      更新时间:2023-09-26

通常我们可以通过以下方式声明变量:

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,您将无法知道,因为它与未使用的值完全没有区别,您需要创建一个繁琐的辅助函数才能找出答案。