Is this allowed?
myObj = {};
myObj['4a56546s6d']
Or the key must start with a letter like:
myObj = {};
myObj['x4a56546s6d']
Can I mix both like:
myObj = {};
myObj['x4a56546s6d']
myObj['4a56546s6d']
I ask that because somethings (for example an ID in HTML) must begin with a letter. I have at the moment the third version and the fireBug marks the keys (beginning with a number) blue.
If your key (property name) is a string literal it's perfectly valid to have a digit as its first character.
See answers for this question for more information about valid keys in JS.
By dot operator you can get access to values from keys which not contains either space's or special characters, words starting from number( that is, those that can't be used as eg variable names) otherwise you can get any reffering to them like as keys in associative array.
You can use as key as everything you want but remember the key will be a string representation of what you put in. Clarifying - will be called toString().
Look:
You can override
toString()
method , eg:See this page: https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Variables
You can use it that way, but you won't be able to access the data by using
myObj.4a56546s6d
because starting an identifier with a number is not allowed.You can use any key if you use
[string]
to access the key, even key with space. All of these are valid:But if you want to use dot
.
operator to access the key then the key must be a valid identifier which means they can not begin with a number or contain space.