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

スポンサーリンク
JavaScript

【テクニカル・上級編】変数の初期化とガベージコレクション:null代入は本当にメモリ解放のトリガーになるのか? – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

変数の初期化とガベージコレクション:null代入は本当にメモリ解放のトリガーになるのか?JavaScriptの現場において、「使い終わった大きなオブジェクトの参照を持つ変数には、明示的に `null` を代入せよ」という教えは、長年にわたり...
JavaScript

【実務・中級編】変数の初期化とガベージコレクション:null代入は本当にメモリ解放のトリガーになるのか? – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

変数の初期化とガベージコレクション:null代入は本当にメモリ解放のトリガーになるのか?コードレビューをしていて、次のようなコードに出くくしたことはないだろうか。function processHeavyData(payload) { le...
JavaScript

【入門編】変数の初期化とガベージコレクション:null代入は本当にメモリ解放のトリガーになるのか? – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!日々の開発、本当にお疲れ様です。JavaScriptを書き進めていく中で、「使い終わった大きな変数には、とりあえず `null` を代入してメモリを綺麗に掃除しておこう」というコードを見たこと、あるいはご自身で書いたことはありま...
JavaScript

【テクニカル・上級編】プライベートクラスフィールド(#)のスコープ隔離:クロージャを使わずに実現する真のプライベート変数の仕組み – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

プライベートクラスフィールド(#)のスコープ隔離:V8の隠しクラスとメモリ空間をハックする真のカプセル化JavaScriptの歴史は、カプセル化の歴史であると言っても過言ではない。かつて私たちは、IIFE(即時実行関数式)によるクロージャで...
JavaScript

【実務・中級編】プライベートクラスフィールド(#)のスコープ隔離:クロージャを使わずに実現する真のプライベート変数の仕組み – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

コードレビューをしていて、未だに「プライベート変数=クロージャ」という思考停止に陥っているコードを見かけると、私は少し悲しくなる。「関数スコープの中に隠ぺいすれば安全だ」——確かにそれはES5時代、あるいはES2015前夜までのベストプラク...
JavaScript

【入門編】プライベートクラスフィールド(#)のスコープ隔離:クロージャを使わずに実現する真のプライベート変数の仕組み – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!フロントエンドからNode.jsの深部まで、JavaScriptの生態系を隅々まで愛するチーフアーキテクトの先輩です。今回は、JavaScriptのクラス構文における「プライベートクラスフィールド(`#`)」についてお話しします...
JavaScript

【テクニカル・上級編】Node.jsのモジュールスコープの正体:CommonJSのラッパー関数とESMのモジュールレコードのメモリ管理 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

Node.jsモジュールスコープの正体:CommonJSのラッパー関数とESMのモジュールレコードのメモリ管理JavaScriptの歴史を紐解く時、私たちは常に「スコープの境界」と「メモリ上の表現形式」の進化の歴史を目撃してきた。ブラウザの...
JavaScript

【実務・中級編】Node.jsのモジュールスコープの正体:CommonJSのラッパー関数とESMのモジュールレコードのメモリ管理 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

コードレビューを始めてくれ。君たちが書いたNode.jsのモジュール群、動いてはいるが……メモリ空間の挙動や、モジュールシステムの裏側を理解せずにコードを書いているのが丸わかりだ。「なぜ`require`だとグローバルを汚染しないのか」「な...
JavaScript

【入門編】Node.jsのモジュールスコープの正体:CommonJSのラッパー関数とESMのモジュールレコードのメモリ管理 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!JavaScriptのコアな仕組みへようこそ。今回は、Node.jsの世界で避けて通れない「変数」の隠れた挙動、そして `require`(CommonJS)と `import`(ESM)でなぜ変数の見え方が変わるのかという深遠...
JavaScript

【テクニカル・上級編】eval()とwith文がスコープチェーンを破壊する技術的理由:静的解析が不可能になるコンパイル時の悲劇 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

eval()とwith文がスコープチェーンを破壊する技術的理由:静的解析が不可能になるコンパイル時の悲劇JavaScriptのエンジン――特にGoogle ChromeやNode.jsを駆動するV8は、ただの「スクリプト解釈器」ではない。そ...
スポンサーリンク