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

None

11:23, 12th August, 2020

Теги

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

Просмотров: 328   Ответов: 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 (который не хочет обрабатывать явный промах программиста).



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

park

07:43, 27th August, 2020

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


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

KOMP

22:08, 7th August, 2020

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

baggs

03:18, 4th August, 2020

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


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

JUST___

21:06, 26th August, 2020

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


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

ЯЯ__4

04:38, 11th August, 2020

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


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

screen

00:01, 15th August, 2020

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


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

+-*/

03:58, 3rd August, 2020

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

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


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

fo_I_K

03:32, 4th August, 2020

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


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

lourence

04:25, 6th August, 2020

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


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

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