声明没有值的变量

Cur*_*urt 7 javascript variables global-variables

我希望创建一个嵌套变量的Javascript对象,其中一些变量没有指定默认值.

我目前有这个:

var globalVarA = "foo";
var globalVarB = "bar";
var globalVarC;

function myFunction(){
  //do something
}
Run Code Online (Sandbox Code Playgroud)

我希望将其更改为:

var myObject = {
  GlobalVars: {
     globalVarA: "foo",
     globalVarB: "bar",
     globalVarC
  },
  myFunction: function(){
     //do something
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

预期':'

如何在没有值的情况下声明此变量?

这是最佳做法还是有其他更好的解决方案?

Ben*_*aum 12

如果要将变量定义为GlobalVars必须明确赋值undefined给它们的属性

GlobalVars: {
     globalVarA: "foo",
     globalVarB: "bar",
     globalVarC: undefined
  },
Run Code Online (Sandbox Code Playgroud)

您的代码包含无效表示法,使用对象文字表示法时,您必须为每个变量指定一个值.这与XML或formParams等其他符号不同,您可以在不设置属性/属性的情况下声明属性/属性.

注意,在我的解决方案中,未定义的变量确实得到一个默认值 - 该值只是原始值undefined,默认情况下,对于未定义的变量返回的值.

但是,您的变量确实,如果你得到定义globalVarC: undefined

GlobalVars.globalVarC;//undefined
GlobalVars.globalVarX;//undefined
GlobalVars.hasOwnProperty("globalVarC");//true
GlobalVars.hasOwnProperty("globalVarX");//false
Run Code Online (Sandbox Code Playgroud)

规格:

4.3.9未定义的值:

未赋值变量时使用的原始值.