Declaring global variables without a value
global-variables, javascript, variables
Solution
If you want to define the variables as properties of `GlobalVars` you have to explicitly assign `undefined` to them
GlobalVars: {
globalVarA: "foo",
globalVarB: "bar",
globalVarC: undefined
},
Your code contained invalid notation, when using object literal notation you must specify a value for each variable. This is unlike other notations like XML or formParams where you can declare a attribute/property without setting it.
Note, that in my solution undefined variables do get a default value - that value is just the primitive value `undefined` which is what is returned by default for variables that were not defined.
However, your variable does get defined if you do `globalVarC: undefined`
GlobalVars.globalVarC;//undefined
GlobalVars.globalVarX;//undefined
GlobalVars.hasOwnProperty("globalVarC");//true
GlobalVars.hasOwnProperty("globalVarX");//false
From the spec:
4.3.9 undefined value:
primitive value used when a variable has not been assigned a value.
Problem
I wish to create a JavaScript object with nested global variables where some of the variables will not have a default value specified. I currently have this: ``` var globalVarA = "foo"; var globalVarB = "bar"; var globalVarC; function myFunction(){ //do something } ``` I wish to change this to: ``` var myObject = { GlobalVars: { globalVarA: "foo", globalVarB: "bar", globalVarC }, myFunction: function(){ //do something } } ``` However I get the following error: Expected ':' How can I declare this variable without a value?