Задать вопрос
Kant
@Kant

Лишняя запятая в JS

Возник спор по поводу ошибки, возникающей в IE, если встречается лишняя запятая в коде.
Ситуация простая:
items: [
{xtype: 'textfield', cls: 'fake-field', value: 'Manager Login'},
new Ext.form.TextField(Ext.applyIf({fieldLabel: 'Username', name: 'login', allowBlank:false}, fieldConfig)),
this.passwordField,
this.passwordConfirmField,
new Ext.form.Hidden({name: 'companyId'}),
]

Если последнюю запятую не убрать — IE не отрабатывает скрипт. Все остальные браузеры отработают на ура.
Вопрос: Кто прав? Кодер и его запятая (вместе со всеми браузерами) или же IE (который не хочет обрабатывать явный промах программиста).
  • Вопрос задан
  • 3673 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 9
charon
@charon
на мой непрофессиональный взгляд неправ программист. Запятая явно тут лишняя, в какой грамматике ни думай.
Ответ написан
Chvanikoff
@Chvanikoff
Запятым в конце перечислений быть!
А IE… Ну он всегда был «особенным».
Ответ написан
Комментировать
Kant
@Kant Автор вопроса
Вообщем разобрались: в 5 издании ECMA-262 запятые допускаются, но браузеры поддерживают только 3 издание, в котором запятые не разрешены.
Ответ написан
kashey
@kashey
Программирую большую половину жизни
Не прав прогер, и у нас на работе почему-то много таких вот не правых.
И не только в JS
наверное потому что люди не Сишники и даже не Паскалисты — а любые «нормальные» языки любое нарушение синтаксиса жестко убивают.
И приучают не писать лишние зпт очень даже быстро
Ответ написан
неправ ИЕ, потому что, согласно стандартам, запятая в конце стоять может. это сделано для удобства программирования и кодогенерации
Ответ написан
Комментировать
MTonly
@MTonly
Веб-разработчик с 2002 года
С массивами-то (Array) в IE (даже 6) вроде такой проблемы нет, а что касается объектов, используемых в качестве ассоциативных массивов, начиная с IE8 это уже исправлено:
var obj = {
	'lorem' : 'first',
	'ipsum' : 'second',
};

Итого, прав программист, но из-за IE6-7 пока приходится делать неудобно — без запятой после последнего элемента.
Ответ написан
Комментировать
printf
@printf
Ем детей.
По стандарту там запятую нельзя. Прав IE (это, наверное, единственный такой случай).
Ответ написан
Меня вот другое интересует, почему ie падает, натыкаясь на эту запятую? У меня он в подобных случаях работал вполне нормально.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы