Синтаксическая ошибка Javascript в Internet Explorer

Я работаю на веб-сайте с уже существующей синтаксической ошибкой javascript.

Я нашел на странице такой объект JSON

var obj = { prop1: 1, prop2: 2, prop3: 3,};

очевидно, что ошибка - это последняя запятая в определении свойства объекта.

Пока я отлаживал свой код, Chrome, Opera, Firefox или IE не сообщали об ошибках. Весь код javascript работает нормально.

Ошибка возникла только в том же браузере IE пользователей сайта.

Есть ли способ настроить браузер так, чтобы он отображал такую ​​ошибку?

Вы имеете в виду use strict?

Terry Wei 20.06.2018 11:27

@TerryWei - Строгий режим тут ни при чем.

T.J. Crowder 20.06.2018 11:27

Напомню, что конечная запятая была «легализована» в IE9, может быть, «тот же браузер IE» запускает страницу с пониженным режимом документа ..?

Teemu 20.06.2018 11:30

@ T.J. Crowder Спасибо!

Terry Wei 20.06.2018 11:31

@Teemu - Правильно, я только что протестировал его на IE9 в стандартном (не «совместимости») режиме, и он доволен конечной запятой в инициализаторе объекта. IE9 + также правильно получает конечные запятые в инициализаторах массивов (IE8 этого не делал, но вы, вероятно, это знаете).

T.J. Crowder 20.06.2018 11:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
1 147
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Завершающая запятая в инициализаторе объекта не должна быть проблемой для IE11, она действительна в IE9 и далее. IE11 может запускать вашу страницу в чудесно ошибочно названном «режиме совместимости», что делает ее «совместимой» с неработающим JavaScript IE8. Я предлагаю изучить, как сделать так, чтобы IE11 не мешал сам себе (например, включив <meta http-equiv = "X-UA-Compatible" content = "IE=Edge"> в head и тому подобное).

Is there any way to set browser to show error like this

Нет. Конечная запятая в инициализаторах объектов стала допустимой в JavaScript в ES5 (2009, хотя эта ссылка относится к обновлению 2011 5.1) (некоторые утверждают, что она действительна даже раньше), что реализовано в современных браузерах.

Вероятно, вы сможете найти и настроить линтер (например, ESLint), чтобы отмечать такие вещи для вас. (Только что проверено, и ESLint действительно имеет Правило comma-dangle, который вы можете использовать, чтобы запретить (или потребовать!) Висящие запятые в инициализаторах объектов.) Или, если хотите, вы можете написать свой код на современном JavaScript и перенести его для старых браузеров, таких как IE11, с помощью такие инструменты, как Вавилон.

Другие вопросы по теме