web-dev-qa-db-fra.com

Comment puis-je corriger cette erreur de syntaxe point-virgule manquante dans Javascript?

Un ami a écrit du code pour moi, et il y avait un fichier avec une étrange erreur de syntaxe. Après un peu de chasse, je l'ai réduit à cette section de code, qui devrait reproduire l'erreur:

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

say(say("Goodbye!"));

Lorsque j'exécute cela, je vois une erreur dans la console Internet Explorer qui dit SCRIPT1004: Expected ';'. Je ne vois aucun point-virgule manquant nulle part, et je ne peux pas imaginer où il veut que j'en mette un.

Où attend-il un point-virgule et pourquoi y attend-il un point-virgule?

47
Peter Olson

Votre problème est le fait que la fonction i in est le caractère unicode i. Si vous le changez en i 'normal' cela devrait fonctionner.

Mais maintenant je me demande comment le hack :) avez-vous obtenu un caractère unicode là-bas: P

unicode error in js

85
PeeHaa

Vous avez mal orthographié la "fonction" :)

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

say(say("Goodbye!"));

Vous avez inséré functіon :)

16
tftd

Je l'ai copié et collé dans mon bloc-notes ++ et votre code ressemble à ceci dans mon bloc-notes ++, retapez votre mot-clé de fonction, je suis remplacé par?.

var say = funct?on(message) {
      alert(message);
      return message;
    };
    say(say("Goodbye!"));
7
The Alpha

J'ai copié votre code dans jsfiddle, et Chrome donne aussi une erreur. J'ai supprimé le mot "fonction" et retapé "fonction", et cela a bien fonctionné.

Il doit y avoir un caractère supplémentaire.

6
Rocket Hazmat

En fait, vous avez inséré unicode "i" au lieu du "i" normal. Je reçois les autres erreurs dans VSCode:
',' expected. (1, 29)
',' expected. (2, 10)
Declaration or statement expected. (4, 3)
Vous pouvez essayer d'évaluer "functіon" == "function" ainsi que:

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


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

0
goblin01

J'ai eu un problème similaire et le même code d'erreur lors du débogage du travail de quelqu'un d'autre. Pour résoudre ce problème, j'ai collé la section de code dans le Bloc-notes, puis l'ai recopiée dans Visual Studio. L'erreur a disparu. Je pense que celui qui a écrit le code à l'origine doit l'avoir copié quelque part avec des caractères étranges.

0
Sturb