Возможные случаи ошибки Javascript: «Ожидаемый идентификатор, строка или число» - PullRequest
80 голосов
/ 27 января 2010

Некоторые пользователи сообщают о случайных ошибках JS на моем сайте. Сообщение об ошибке гласит «Ожидаемый идентификатор, строка или номер», а номер строки - 423725915, который является просто произвольным числом и изменяется для каждого отчета, когда это происходит. В основном это происходит в браузерах IE7 / Mozilla 4.0.

Я несколько раз сканировал свой код и запускал jslint, но он ничего не обнаружил - кто-нибудь знает об общем типе проблем JS, которые приводят к этому сообщению об ошибке?

Ответы [ 19 ]

0 голосов
/ 11 июня 2015

Вы можете столкнуться с этой проблемой при использовании Knockout JS. Если вы попытаетесь установить атрибут класса, как в примере ниже, он потерпит неудачу:

<span data-bind="attr: { class: something() }"></span>

Избегайте строки класса следующим образом:

<span data-bind="attr: { 'class': something() }"></span>

Мои 2 цента.

0 голосов
/ 24 апреля 2014

Возможно, у вас есть объект, имеющий метод constructor, и вы пытаетесь вызвать его.

0 голосов
/ 03 апреля 2013

Еще один вариант этой ошибки: у меня была функция с именем 'continue', и, поскольку это зарезервированное слово, она вызвала эту ошибку. Мне пришлось переименовать мою функцию «continueClick»

0 голосов
/ 19 февраля 2016

Была такая же проблема с другой конфигурацией. Это было в угловом фабричном определении, но я предполагаю, что это может произойти и в другом месте:

angular.module("myModule").factory("myFactory", function(){
    return
    {
        myMethod : function() // <--- error showing up here
        {
            // method definition
        } 
    }
});

Исправить очень экзотично:

angular.module("myModule").factory("myFactory", function(){
    return { // <--- notice the absence of the return line
        myMethod : function()
        {
            // method definition
        } 
    }
});
0 голосов
/ 06 августа 2015

Я тоже сталкивался с этой проблемой. Я нашел ниже два решения. 1). То же, что упоминалось выше, удалите лишнюю запятую из объекта JSON. 2). Кроме того, мой JSP / HTML был. Из-за этого он запускал старый режим браузера, который выдавал ошибку JS за лишнюю запятую. При использовании он запускает режим браузера HTML5 (если поддерживается) и отлично работает даже с Extra Comma, как и другие браузеры FF, Chrome и т. Д.

0 голосов
/ 22 января 2016

Вот простая техника для устранения проблемы: Выведите сценарий / код на консоль. Скопируйте код из консоли в вашу IDE. Большинство IDE выполняют проверку ошибок в коде и выделяют ошибки. Вы должны увидеть ошибку почти сразу в вашем редакторе JavaScript / HTML.

0 голосов
/ 05 февраля 2013

IE7 имеет проблемы с массивами объектов

columns: [
{
  field: "id",
  header: "ID"
},
{
  field: "name",
  header: "Name" , /* this comma was the problem*/ 
},
...
0 голосов
/ 20 февраля 2019

Это также может произойти в Typescript, если вы вызываете функцию в середине нигде внутри класса. Например

class Dojo implements Sensei {
     console.log('Hi'); // ERROR Identifier expected.
     constructor(){}
}

Вызовы функций, такие как console.log(), должны быть внутри функций. Не в той области, где вы должны объявлять поля класса.

0 голосов
/ 27 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...