友人が私のためにいくつかのコードを書いたところ、奇妙な構文エラーのあるファイルが1つありました。少し探した後、エラーを再現するはずの次のコードセクションに絞り込みました。
var say = functіon(message) {
alert(message);
return message;
};
say(say("Goodbye!"));
これを実行すると、Internet ExplorerコンソールにSCRIPT1004: Expected ';'
。どこにも行方不明のセミコロンはありませんし、どこに配置したいか想像もつきません。
どこでセミコロンが期待され、なぜそこにセミコロンが期待されますか?
あなたの問題は、関数のi
がUnicode文字i
であるという事実です。これを「通常の」i
に変更すると、正常に機能するはずです。
しかし今、私はハックがどうすればいいのだろうと思います:)そこにユニコード文字を取得しました:P
「機能」のつづりを間違えました:)
var say = function(message){
alert(message);
return message;
};
say(say("Goodbye!"));
functіon
を挿入しました:)
Notepad ++でコピーして貼り付けました。Notepad++でコードは次のようになります。関数キーワードを再入力すると、iに置き換えられます。
var say = funct?on(message) {
alert(message);
return message;
};
say(say("Goodbye!"));
コードをjsfiddleにコピーすると、Chromeもエラーになります。Wordの「関数」を削除し、「関数」を再入力すると、正常に機能しました。
そこに余分な文字が必要です。
実際、通常の「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())
function compare2() {
return "function" == "function"
}
console.log(compare2())
他の人の作業をデバッグするときに、同様の問題と同じエラーコードがありました。これを修正するために、コードのセクションをメモ帳に貼り付け、Visual Studioにコピーし直しました。エラーはなくなりました。コードを最初に書いた人は、どこかに奇妙な文字が含まれているどこかからコピーしたに違いないと思います。