Если ваше ключевое имя является допустимым идентификатором Javascript или номером, Javascript позволит вам опустить кавычки в именах ключей. На практике, однако, лучше всего тренироваться, чтобы всегда использовать кавычки, чтобы избежать путаницы, как это, а также потому, что JSON требует их.
Ответ 2
Вы не можете - это один и тот же ключ, и инициализатор создаст объект с одним элементом "a" со значением "2". Попробуйте следующее:
var obj = {a:1,'a':2};
for ( var i in obj )
{
alert(i + '=' + obj[i] );
}
И вы просто получите ответ "a = 2".
Ответ 3
очевидно, 'a' - это односимвольная строка с строчным буквой a в качестве содержимого; но что вы ожидаете быть другим ключом? если вы хотите, чтобы это значение переменной с именем a, синтаксис фигурных скобок не поможет вам. В отличие от Python, этот синтаксис предполагает, что клавиши являются строками, а кавычки являются необязательными.
Вам нужно будет сделать что-то вроде этого:
var a = 'givenkey'
var obj = {}
obj[a] = 1
obj['a'] = 2
это создаст объект, эквивалентный:
var obj = {'givenkey':1, 'a':2}
Ответ 4
Если вы не уверены в ключе - используйте итерацию
for(var k in obj)
alert(k + "=" + obj[k])
Когда вы знаете ключевое точное значение, используйте obj [k]
Ответ 5
Нет никакой разницы.
alert([
obj.a,
obj['a']
].join("\n")); // returns 2 in both cases