変数の宣言(var / let / const)とスコープ・巻き上げのメカニズム

スポンサーリンク
JavaScript

【入門編】厳格モード(use strict)が変数の暗黙的宣言を許さない技術的理由:最適化の観点から – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!フロントエンドからNode.jsの深層まで、日夜コードと向き合っているシニアアーキテクトの私です。JavaScriptを学び始めると、変数を宣言するときに `let` や `const` を使いますよね。「あれ、昔のコードやうっ...
JavaScript

【テクニカル・上級編】スコープチェーンの探索コスト:ネストされた関数がV8のコンテキストキャッシュに与える影響 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

スコープチェーンの深淵:V8コンテキストキャッシュとネストされた関数のコストJavaScriptのコードを書くとき、私たちはしばしば「スコープの広さ」や「変数の閉じ込め」について、可読性やカプセル化の観点から議論する。しかし、V8をはじめと...
JavaScript

【実務・中級編】スコープチェーンの探索コスト:ネストされた関数がV8のコンテキストキャッシュに与える影響 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

スコープチェーンの探索コスト:なぜネストの深さはV8エンジンを鈍らせるのかコードレビューをしていて、次のようなコードに出くわしたことはないだろうか。// レビューNG例:深いスコープのネストと不必要なクロージャの多用function cre...
JavaScript

【入門編】スコープチェーンの探索コスト:ネストされた関数がV8のコンテキストキャッシュに与える影響 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!JavaScriptの奥深い世界へようこそ。フロントエンドからNode.jsの深層までコードを書き続けていると、「なぜこの書き方がパフォーマンスに影響するのか」というランタイムの息吹が聞こえてくるようになります。今回は、Java...
JavaScript

【テクニカル・上級編】関数宣言と変数宣言の巻き上げ優先順位:AST生成フェーズにおける競合解決のルール – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

AST生成とV8の隠しクラスが支配する世界:同名「関数と変数」の巻き上げ優先順位の完全解明JavaScriptエンジニアであれば、`var` や `let`、そして関数宣言における「巻き上げ(Hoisting)」という現象に一度は悩まされた...
JavaScript

【実務・中級編】関数宣言と変数宣言の巻き上げ優先順位:AST生成フェーズにおける競合解決のルール – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

コードレビューの現場から:その「巻き上げ(Hoisting)」の挙動、本当に理解していますか?テックリードの私だ。今日のコードレビューで、ジュニアエンジニアからこんな質問を受けた。> 「同じスコープ内で同じ名前の変数と関数を宣言したら、一体...
JavaScript

【入門編】関数宣言と変数宣言の巻き上げ優先順位:AST生成フェーズにおける競合解決のルール – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!フロントエンドからNode.jsの内部挙動まで、日夜JavaScriptと向き合っているシニアアーキテクトです。今回は、JavaScriptの学習を始めて多くの人が最初に「おや?」とつまずく、変数と関数の「巻き上げ(Hoisti...
JavaScript

【テクニカル・上級編】グローバルオブジェクトとvarの奇妙な関係:windowプロパティへの自動バインドの歴史的経緯 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

グローバルオブジェクトとvarの奇妙な関係:windowプロパティへの自動バインドの歴史的経緯とV8の深層JavaScriptという言語を、単なる「ブラウザを動かすための便利なスクリプト言語」として捉えているうちは、この言語が持つ真の魔力、...
JavaScript

【実務・中級編】グローバルオブジェクトとvarの奇妙な関係:windowプロパティへの自動バインドの歴史的経緯 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

序:コードレビューの現場から「なぜ、このレガシーなコードでバグが起きるのか、お前は説明できるか?」テックリードとしてコードレビューを行っていると、未だにグローバルスコープで `var` を使っているコードに遭遇する。そして、それが引き起こす...
JavaScript

【入門編】グローバルオブジェクトとvarの奇妙な関係:windowプロパティへの自動バインドの歴史的経緯 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!フロントエンドからNode.jsの深層まで、JavaScriptの生態系を知り尽くしたチーフアーキテクトの私です。今回は、JavaScriptの歴史が生んだ最も奇妙で、そして少し危険な仕様の一つである「グローバルスコープでの `...
スポンサーリンク