まず、次の 3 つのコードを見てみましょう
var firstName = "Mark ";
(function DisplayFirstName() {
console.log(firstName);
})();//Mark
var lastName = "Aut" を出力する必要があります;
(function DisplayLastName () {
var lastName = "Bru";
console.log(lastName);
})();//Bru を出力する必要があり、ローカル スコープはグローバル スコープよりも高い優先度
//次のコードはどうでしょうか?
var lastName = "Aut";
(function DisplayLastName() {
console.log(lastName);
var lastName = "Bru";
console.log(lastName);
})();// この出力の結果は次のとおりです。 :
LOG: 未定義
LOG: Bru
これは私の予想を超えています。当初は「Aut」と「Bru」であるべきだと考えていました。
私の当初の理解は次のとおりでした。プログラムが最初に作成されたとき。 lastName を出力します。プログラムはローカルに宣言された lastName 変数を見つけられなかったため、ローカル変数
の値が 2 回目に使用されました (私の概念では、JavaScript はインタープリタ言語であるため、文は次のようになります)。文... ....実行)
この結果を見ると、JavaScript の実行は必ずしも逐次的ではないようです..
これまでのところ、私の推測に基づくと、JavaScript の実行は最初に構文を実行する必要があります。次に、変数テーブル (ローカルおよびグローバル) を分析して完成させました
そして、スクリプトを 1 行ずつ順番に実行し始めました
また、すべての JavaScript 専門家に私の疑問を明確にするようお願いします。