JavaScript

スポンサーリンク
JavaScript

【テクニカル・上級編】なぜ現代のJavaScript開発でvarを禁止すべきなのか:スコープ汚染が引き起こすバグの再現実験 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

varという名の時限爆弾:V8ヒープの汚染とスコープ崩壊のメカニズムJavaScriptエンジニアとしてキャリアを積んできた者であれば、`var` がいかに邪悪な遺物であるかを一度は耳にしたことがあるはずだ。しかし、「なぜ使ってはいけないの...
JavaScript

【実務・中級編】なぜ現代のJavaScript開発でvarを禁止すべきなのか:スコープ汚染が引き起こすバグの再現実験 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

エンジニアの皆さん、コードレビューの場で「なぜまだ `var` を使っているのか?」と問いただす側になっていないだろうか。現代のJavaScript開発において、`var` の使用は百害あって一利なしだ。ES2015(ES6)の黎明期から幾...
JavaScript

【入門編】なぜ現代のJavaScript開発でvarを禁止すべきなのか:スコープ汚染が引き起こすバグの再現実験 – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!フロントエンドからNode.jsのランタイム内部まで、JavaScriptの生態系をくまなく見渡してきたチーフアーキテクトの私です。みなさんは日々のコーディングで、変数の宣言に何を使っていますか?「なんとなく `const` を...
JavaScript

【テクニカル・上級編】varの巻き上げとTDZの正体:JavaScriptエンジンがコードを解釈する2つのフェーズ – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

varの巻き上げとTDZの正体:JavaScriptエンジンがコードを解釈する2つのフェーズJavaScriptエンジンの内部で何が起きているのか。その問いに向き合わずして、現代の大規模フロントエンドや高スループットなNode.jsバックエ...
JavaScript

【実務・中級編】varの巻き上げとTDZの正体:JavaScriptエンジンがコードを解釈する2つのフェーズ – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

序章:コードレビューの現場から「なぜ、このコードは初期化前にアクセスしてエラーになるはずなのに、`undefined`を吐き出してサイレントバグを引き起こしているんだ?」プルリクエストのレビュー中、ジュニアエンジニアが書いた旧態依然とした`...
JavaScript

【入門編】varの巻き上げとTDZの正体:JavaScriptエンジンがコードを解釈する2つのフェーズ – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!日々の開発、本当にお疲れ様です。JavaScriptを書き始めた頃、「あれ、変数を宣言したはずなのに、なぜか `undefined` になるぞ?」「いや、今度は `ReferenceError` で怒られたぞ……?」と首を傾げた...
JavaScript

【JS応用|豆知識】ストリーム処理のメモリを守る!CountQueuingStrategyによるバッファ制御術

導入:ストリーム処理における「溢れ」を防ぐWeb APIからのデータ取得やファイルの読み込みなどで使用する「Streams API」を扱う際、データが生成される速度に対して処理が追いつかないという問題が発生することがあります。これを放置する...
JavaScript

【JS応用|実務向け】Streams APIのメモリ管理を最適化する「ByteLengthQueuingStrategy」の活用術

1. 導入:なぜByteLengthQueuingStrategyが必要なのかフロントエンド開発において、Fetch APIやReadableStreamを使用して巨大なデータを扱う際、メモリを浪費せずに効率的にデータを処理することは極めて...
JavaScript

【JS応用|初心者向け】TransformStream APIでデータストリームを自在に加工!初心者でもわかる使い方

導入:データ加工の救世主、TransformStreamとは?Web開発をしていると、ネットワークから受け取ったデータや、ファイルから読み込んだデータを、そのまま使うのではなく、何らかの形で加工してから利用したい場面に遭遇しませんか?例えば...
JavaScript

【JS応用|豆知識】ストリーム処理の要!WritableStreamで大容量データの書き込みをスマートに制御する

導入: なぜWritableStreamが重要なのかWebアプリケーションで大きなファイルを生成したり、ネットワーク経由でデータを受け取ったりする際、メモリを大量に消費してブラウザが重くなってしまった経験はありませんか?従来のデータ処理では...
スポンサーリンク