ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript におけるホイスティングとは何ですか?

JavaScript におけるホイスティングとは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-14 22:30:48582ブラウズ

O que é Hoisting no JavaScript?

あなたがマジック ショーの準備をしていると想像してください。始める前に、マジシャンはステージで使用するすべてのアイテムを整理し、カード、ウサギ、帽子を適切な場所に置きます。これにより、彼は混乱することなくトリックを行うことができます。

JavaScript では、コードを記述するときに同様のことが起こります。この場合の「マジシャン」は JavaScript であり、プログラムの実行を開始する前にいくつかのことを整理します。この自動構成はホイスティングと呼ばれます。


吊り上げはどのように機能しますか?

  1. 最初の設定:
    JavaScript は、変数と関数のすべての宣言を取得し、それらをコードの先頭に「登ります」。まるで彼がこう言っているかのようです。「始める前に、迷子にならないように重要なものをすべて分離しておきます。」

  2. 重要:
    宣言のみが先頭に移動され、割り当てられた値は移動されません。あたかも「おい、この魔法の帽子は存在する!」と言っているかのようですが、JavaScript は、コード内で適切なタイミングで帽子が到着したときにのみ、帽子の使い方を理解します。


簡単な例

このコードを参照してください:

console.log(meuNome); // undefined
var meuNome = "Jonas";
console.log(meuNome); // Jonas

最初は奇妙に思えます: myName を宣言する前に、JavaScript はどのようにして myName の存在を知るのでしょうか?

これは、彼が舞台裏で次のようなことを行うために発生します:

var meuNome; // Declaração "subiu"
console.log(meuNome); // undefined
meuNome = "Jonas"; // Valor atribuído
console.log(meuNome); // Jonas

言い換えると、変数 myName の宣言を追加しますが、値 "Jonas" を正しい場所に割り当てるだけです。

letconst によるホイスト

ここで重要な違いがあります。let または const を使用する場合、JavaScript は宣言する前に変数を使用できません
チェックしてみてください:

console.log(idade); // Erro: Cannot access 'idade' before initialization
let idade = 14;

これは、letconst が特別な領域に「格納」され、宣言した後にのみ使用できるために発生します。

機能付き吊り上げ

JavaScript の関数も「呼び出されます」。この例を参照してください:

cumprimentar();

function cumprimentar() {
  console.log("Olá!");
}

関数を宣言する前に呼び出しても、機能します。これは、JavaScript が関数全体をコードの先頭に「登る」ために発生します。

結論

ホイスティングは、JavaScript が非常に組織化された魔術師であるかのようです。実行を開始する前にコードをざっと確認し、すべての変数と関数の宣言を分離し、それから初めてショーが始まります。

しかし、大きな力には大きな責任が伴うということを忘れないでください。理解せずにホイスティングを使用すると、混乱が生じる可能性があります。したがって、コードがより明確でより整理されるように、変数と関数を慎重に宣言してください。

以上がJavaScript におけるホイスティングとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。