1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript】Hoistingとは

Posted at

Hotistingとは

JavaScriptにおける"hoisting"(ホイスティング)は、変数の宣言や関数の定義が、そのスコープ内の先頭に移動される挙動を指します。つまり、コードが実行される前に変数や関数がメモリに割り当てられ、それらが使用可能になるということです。

具体的には、JavaScriptエンジンがコードを実行する前に、変数の宣言部分がそのスコープの先頭に移動され、初期化はそのままの位置に残ります。関数の場合も同様で、関数の宣言部分がスコープの先頭に移動されます。

たとえば、次のコードを考えてみましょう。

console.log(x); // undefined
var x = 5;
console.log(x); // 5

foo(); // "hello"
function foo() {
  console.log("hello");
}

このコードでは、変数xと関数fooが使用される前に宣言されていますが、実際には宣言された位置と異なる箇所で使用されています。JavaScriptのhoistingにより、実際には以下のように解釈されます。

var x; // 変数の宣言部分が先頭に移動
function foo() { // 関数の定義が先頭に移動
  console.log("hello");
}

console.log(x); // undefined
x = 5;
console.log(x); // 5

foo(); // "hello"

まとめ

このように、変数や関数の宣言がそのスコープの先頭に移動することで、意図しないエラーを回避することができますが、コードの可読性や予測性が低下する可能性があるため、hoistingの影響を十分に理解しておくことが重要です。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?