こんにちは!日々の開発、本当にお疲れ様です。
JavaScriptの文法を学んでいくと、「変数」の扱いや「スコープ(変数の有効範囲)」で、ふと立ち止まる瞬間がありますよね。特に、ブラウザではなくサーバーサイドの Node.js の世界に踏み込むと、ファイルごとに変数がきれいに隔離されていて、「あれ?他のファイルで宣言した変数が見当たらないぞ?」と不思議に思ったことはありませんか?
今回は、Node.jsの心臓部である「モジュールスコープ(CommonJS vs ESM)」のメモリ管理とスコープの隔離メカニズムについて、V8エンジンの裏側の動きまで少しだけ覗き見しながら、優しく丁寧に紐解いていきましょう。
ここをしっかりとクリアすれば、あなたのJavaScriptの基本とランタイムへの理解はバッチリマスターできますよ。それでは、一緒に深掘りしていきましょう!
—
1. なぜNode.jsではファイルごとの変数が混ざらないのか?
まずは基本のキからおさらいです。
ブラウザの古いJavaScriptでは、`