Как я могу исправить эту недостающую синтаксическую ошибку синтаксиса в Javascript? - PullRequest
47 голосов
/ 12 февраля 2012

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

var say = functіon(message) {
  alert(message);
  return message;
};

say(say("Goodbye!"));

Когда я запускаю это, я вижу ошибку в консоли Internet Explorer, которая говорит SCRIPT1004: Expected ';'. Я не вижу ни одной точки с запятой и не могу себе представить, где она хочет, чтобы я ее поставил.

Где он ожидает точку с запятой и почему он ожидает точку с запятой?

Ответы [ 6 ]

83 голосов
/ 12 февраля 2012

Ваша проблема заключается в том, что i в функции является символом Unicode i.Если вы измените его на «обычный» i, он должен просто работать.

Но теперь мне интересно, как взломать :) Вы получили там символ юникода: P

unicode error in js

16 голосов
/ 12 февраля 2012

Вы неправильно написали "function":)

var say = function(message){
    alert(message);
    return message;
};

say(say("Goodbye!"));

Вы вставили functіon:)

7 голосов
/ 12 февраля 2012

Я скопировал и вставил его в мой блокнот ++, и ваш код выглядит в моем блокноте ++ так, перепишите ключевое слово функции, я заменен на?.

var say = funct?on(message) {
      alert(message);
      return message;
    };
    say(say("Goodbye!"));
6 голосов
/ 12 февраля 2012

Я скопировал ваш код в jsfiddle, и Chrome тоже выдает ошибку.Я удалил слово «функция» и набрал «функция», и все заработало.

Там должен быть какой-то дополнительный символ.

0 голосов
/ 08 марта 2018

Фактически, вы вставили юникод "i" вместо обычного "i". Я получаю сообщения об ошибках в VSCode:
',' expected. (1, 29)
',' expected. (2, 10)
Declaration or statement expected. (4, 3)
Вы также можете попробовать оценить "functіon" == "function":

function compare() {
  return "functіon" === "function"
}
console.log(compare())

Однако, когда я пытаюсь сравнить его, рисуя «функцию» сам: она возвращает true;

function compare2() {
  return "function" == "function"
}
console.log(compare2())

Кроме того, я не включил здесь точки с запятой, в javascript они не нужны.
0 голосов
/ 08 апреля 2016

У меня была похожая проблема и тот же код ошибки при отладке чужой работы. Чтобы это исправить, я вставил фрагмент кода в Блокнот, а затем снова скопировал его обратно в Visual Studio. Ошибка ушла. Я думаю, что тот, кто написал код изначально, должен был скопировать его откуда-то со странными символами.

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