Возможные случаи для ошибки JavaScript: “Ожидаемый идентификатор, строка или число”

Я нашел два старых ответа на переполнение стека по этой теме.

Вверх: Когда функция JavaScript событий на элементах сразу становится более важной (поэтому, если вы используете событие DOM Ready для загрузки всего, это неправильное место)

Внизу: при загрузке содержимого важнее

Как сказал @Quentin 6 лет назад: Когда вы выбираете загрузить свой javascript внизу Страница вместо верхней?

Я бы добавил что-то еще, но я думаю, что один достаточно ясен, и если нет другого ответа по этому вопросу:

Должен ли код JQuery идти в верхнем или нижнем колонтитуле?

82
задан psychotik 27 January 2010 в 19:40
поделиться

5 ответов

Причиной ошибки такого типа часто может быть неправильная запятая в определении объекта или массива:

var obj = {
   id: 23,
   name: "test",  <--
}

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

143
ответ дан 24 November 2019 в 09:02
поделиться

Машинописный текст для выпуска

Windows Это работает в IE, хроме, FF

export const OTP_CLOSE = { 'outcomeCode': 'OTP_CLOSE' };

, Это работает в хроме, FF, не работает в IE 11

export const OTP_CLOSE = { outcomeCode: 'OTP_CLOSE' };

, я предполагаю, что он так или иначе имел отношение к зарезервированным словам Windows enter image description here

0
ответ дан 24 November 2019 в 09:02
поделиться

Это окончательный ООН ответ: устранение заманчивого, но неверного ответа, чтобы помочь другим ориентироваться на правильные ответы.

Это может показаться отладочной обработкой, выделит проблему. Однако единственным браузером, в которой возникает проблема, и в IE вы можете только отладки кода, который был частью исходного документа. Для динамически добавленного кода отладчик только что показывает элемент тела в качестве текущей инструкции, а то есть утверждает, что ошибка произошла на огромном номере линии.

Вот образец веб-страницы, которая продемонстрирует эту проблему в IE:

<html>
<head>
<title>javascript debug test</title>
</head>
<body onload="attachScript();">
<script type="text/javascript">
function attachScript() {
   var s = document.createElement("script");
   s.setAttribute("type", "text/javascript");
   document.body.appendChild(s);
   s.text = "var a = document.getElementById('nonexistent'); alert(a.tagName);"
}
</script>
</body>

Это дало для меня следующую ошибку:

Line: 54654408
Error: Object required
9
ответ дан 24 November 2019 в 09:02
поделиться

Это звучит мне, как скрипт, который был натянут с SRC, и загружен всего на полпути, вызывая ошибку синтаксии, остальная часть не загружается.

0
ответ дан 24 November 2019 в 09:02
поделиться

На самом деле я получил что-то подобное на IE недавно, и это было связано с ошибками синтаксиса JavaScript. Я говорю ошибку в цитатах, потому что это было хорошо везде, но на IE. Это было под IE6. Проблема была связана с созданием объекта JSON и дополнительной запятой, такой как

{ one:1, two:2, three:3, }

IE6, действительно не нравится, когда запятая после 3. Вы можете искать что-то подобное, начисляющие подобные проблемы синтаксиса.

Да, я думал, что многомиллионный номер линии в моем 25 строке JavaScript тоже был интересен.

Удачи.

11
ответ дан 24 November 2019 в 09:02
поделиться
Другие вопросы по тегам:

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