Сведения о вопросе

FUTER

12:14, 9th August, 2020

Теги

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

Просмотров: 400   Ответов: 9

Возник спор по поводу ошибки, возникающей в 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 (который не хочет обрабатывать явный промах программиста).



  Сведения об ответе

lesha

16:17, 9th August, 2020

на мой непрофессиональный взгляд неправ программист. Запятая явно тут лишняя, в какой грамматике ни думай.


  Сведения об ответе

lourence

09:40, 21st August, 2020

  Сведения об ответе

ITSME

14:05, 1st August, 2020

Запятым в конце перечислений быть!
А IE… Ну он всегда был «особенным».


  Сведения об ответе

KOMP

18:03, 25th August, 2020

Вообщем разобрались: в 5 издании ECMA-262 запятые допускаются, но браузеры поддерживают только 3 издание, в котором запятые не разрешены.


  Сведения об ответе

P_S_S

13:19, 5th August, 2020

Не прав прогер, и у нас на работе почему-то много таких вот не правых.
И не только в JS
наверное потому что люди не Сишники и даже не Паскалисты — а любые «нормальные» языки любое нарушение синтаксиса жестко убивают.
И приучают не писать лишние зпт очень даже быстро


  Сведения об ответе

pumpa

05:12, 21st August, 2020

неправ ИЕ, потому что, согласно стандартам, запятая в конце стоять может. это сделано для удобства программирования и кодогенерации


  Сведения об ответе

pumpa

14:31, 25th August, 2020

С массивами-то (Array) в IE (даже 6) вроде такой проблемы нет, а что касается объектов, используемых в качестве ассоциативных массивов, начиная с IE8 это уже исправлено:
var obj = {
	'lorem' : 'first',
	'ipsum' : 'second',
};

Итого, прав программист, но из-за IE6-7 пока приходится делать неудобно — без запятой после последнего элемента.


  Сведения об ответе

pumpa

05:40, 14th August, 2020

По стандарту там запятую нельзя. Прав IE (это, наверное, единственный такой случай).


  Сведения об ответе

baggs

10:52, 18th August, 2020

Меня вот другое интересует, почему ie падает, натыкаясь на эту запятую? У меня он в подобных случаях работал вполне нормально.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться