Comment puis-je corriger ce point-virgule manquant erreur de syntaxe dans le code Javascript?
Un ami a écrit un peu de code pour moi, et il y avait un fichier avec une étrange erreur de syntaxe en elle. Après un peu de chasse, j'ai rétréci vers le bas à cette section de code, qui doit reproduire l'erreur:
var say = functіon(message) {
alert(message);
return message;
};
say(say("Goodbye!"));
Lorsque je l'exécute, je vois une erreur dans Internet Explorer console qui dit SCRIPT1004: Expected ';'
. Je ne vois pas un point-virgule manquant n'importe où, et je ne vois pas où il veut m'en mettre une.
Où faut-il s'attendre à un point-virgule et pourquoi faut-il s'attendre à un point-virgule là?
say(say("Goodbye!"););
?- Vous obtenez une erreur dans Firebug trop: jsfiddle.net/AdHZY
- Des points-virgules ne doit apparaître à la fin des lignes. Que serait la cause d'une erreur.
- Le Script a l'air bon. Est-ce le code?
- C'est bizarre. J'ai essayer votre extrait de code dans IE et Chrome, tous les bons.
- Oui.
- Quelle version de ie?
- Vous avez probablement un caractère non imprimable, quelque part, qui est la rupture des choses. Retapez le code manuellement et qu'il fonctionne correctement. Copier/Coller votre code exactement produit des erreurs, mais en entrant manuellement ça ne marche pas.
- Je pensais que c'était un problème intéressant, et j'ai certainement appris quelque chose sur la façon de le résoudre. Je serais certainement étonné si j'ai rencontré cette erreur avec un code qui visuellement ressemble à droite.
- Quelqu'un a à faire à des gens sur le but...peut-être l'un des outils en ligne ou quelque chose...quelqu'un pense que c'est drôle de hasard insérer des caractères unicode qui ressemblent à des "caractères normaux"..sinon, comment cela pourrait-il arriver?
- C'est une farce. La façon la plus définitive. Peut-être que je vais jouer ce sur quelqu'un.
- Je dois dire que j'ai le plus grand respect pour l'OP de vérifier leur code dans IE (à l'époque) car il savait que son site web ou d'un script aurait chercher / de fonctionner normalement dans n'importe quel autre navigateur avec un rendu normal / js capacités 😛
Vous devez vous connecter pour publier un commentaire.
Votre problème est le fait que le
i
en fonction est le caractère unicodei
. Si vous le changer pour un "normal"i
il devrait fonctionner.Mais maintenant je me demande comment le hack 🙂 avez-vous un caractère unicode là 😛
456
.i
dans la question, cliquez-droit et sélectionnez "recherche".і
était un peu plus grand que les autres personnages autour d'elle.i=105
et la un icii=1110
. Je ne sais pas si ils sont sur la bonne charcodes mais c'est généralement la façon dont vous contrôlez.funct?on
dans Notepad++. Assez facile. J'étais encore assez perplexe quand j'ai couru dans JSFiddle, cependant.Vous avez mal orthographié la "fonction" 🙂
Vous avez inséré
functіon
🙂"functіon" === "function"
J'ai copié et collé dans mon notepad++ et votre code ressemble à ceci dans mon notepad++, retapez votre mot clé de fonction, i est remplacé par ?.
J'ai copié ton code dans jsfiddle, et Chrome trop donne une erreur. J'ai supprimé le mot "fonction", et re-tapé "fonction", et il a bien fonctionné.
Il doit y avoir un caractère supplémentaire là.
function
: jsfiddle.net/AdHZY/1J'ai eu un problème similaire et le même code d'erreur lors du débogage de quelqu'un d'autre travail. Pour corriger cela, j'ai collé la section de code dans le bloc-notes et puis re-copié à Visual Studio. L'erreur a disparu. Je pense que celui qui a écrit le code à l'origine doit avoir été copié à partir de quelque part avec des caractères étranges dans il.
En fait, vous avez inséré unicode "je" au lieu de la normale "je".
Je reçois les collègues des erreurs dans VSCode:
',' expected. (1, 29)
',' expected. (2, 10)
Declaration or statement expected. (4, 3)
Vous pouvez essayer d'évaluer
"functіon" == "function"
ainsi:JS:
Cependant, lorsque j'essaie de le comparer par le dessin de "fonction" moi-même: elle retourne true;
JS:
Également, je n'ai pas inclure des points-virgules ici, en javascript elles ne sont pas nécessaires.