データ型と型判定(プリミティブとオブジェクト, typeof, 暗黙の型変換)

スポンサーリンク
JavaScript

【テクニカル・上級編】 抽象操作 ToNumber の仕様詳細 – JavaScript実践ガイド

泥沼の暗黙変換を読み解く:`ToNumber` が引き起こすアーキテクチャの崩壊と防衛術フロントエンドの深淵を覗いている諸君なら、一度は `[] + {}` の挙動に頭を抱え、`1 == "1"` が `true` を返すという仕様に殺意を...
JavaScript

【テクニカル・上級編】 テンプレートリテラルと型変換 – JavaScript実践ガイド

テンプレートリテラルという「魔法」の裏側にある、泥臭い型変換の真実JavaScriptのエンジニアとして数年現場を回せば、テンプレートリテラル(`` `...` ``)が単なる文字列結合の糖衣構文ではないことは周知の事実だろう。しかし、多く...
JavaScript

【テクニカル・上級編】 スタックとヒープのメモリ管理概念 – JavaScript実践ガイド

メモリの深淵を覗く:JavaScriptにおけるスタック・ヒープ管理とGC戦略JavaScriptを単なる「ブラウザで動く手軽なスクリプト言語」と捉えているなら、それはV8エンジンのポテンシャルを半分も見捨てているに等しい。我々が書くコード...
JavaScript

【テクニカル・上級編】 実務における型判定デザインパターン – JavaScript実践ガイド

JavaScriptの「型」と戦う:実戦で通用する防御的プログラミングの深淵JavaScriptという言語は、その柔軟性ゆえに「何もかもが許される」という甘い罠を内包しています。大規模なWebアプリケーションを構築する際、最も多くのバグを誘...
JavaScript

【テクニカル・上級編】 Array.isArray()による配列判定 – JavaScript実践ガイド

境界線を定義せよ:なぜ `Array.isArray()` が「ただの判定メソッド」以上の意味を持つのかJavaScriptにおいて、「ある変数が配列であるか」を判定する。これほどありふれた操作でありながら、実はフロントエンドの堅牢性を左右...
JavaScript

【テクニカル・上級編】 ToPrimitive抽象操作 – JavaScript実践ガイド

JavaScriptの深淵:`ToPrimitive`が引き起こす「暗黙の罠」をアーキテクチャの視点で解剖するJavaScriptを「型が緩い言語」と揶揄する声は多い。だが、その裏側にある`ToPrimitive`という抽象操作を知れば、そ...
JavaScript

【テクニカル・上級編】 プリミティブのラッパーオブジェクト – JavaScript実践ガイド

プリミティブの「仮面」を剥ぐ:JavaScriptのラッパーオブジェクトが仕掛ける甘い罠君たちが何気なく書いている `str.toUpperCase()` や `num.toFixed(2)`。これらがなぜ、プリミティブ型であるはずの値に対...
JavaScript

【テクニカル・上級編】 Object.is()メソッド – JavaScript実践ガイド

`Object.is()` が暴く「等価性」の嘘:なぜ我々は `===` を疑わねばならないのかフロントエンドの深淵を覗き込んでいる諸君、ようこそ。日々の開発で何気なく叩いている `===`(厳密等価演算子)。我々はこれを「JSにおける正義...
JavaScript

【テクニカル・上級編】 等価演算子(==)と厳密等価演算子(===) – JavaScript実践ガイド

JavaScriptの「==」という呪いを解く:なぜ我々は今すぐ「===」に帰依すべきなのかフロントエンドの戦場において、我々が最も警戒すべきは「予期せぬバグ」ではない。「予期できるはずだったのに、言語仕様の罠に嵌まって見逃されたバグ」だ。...
JavaScript

【テクニカル・上級編】 NaN(Not-a-Number)の特性と判定 – JavaScript実践ガイド

NaNという名の「数値の亡霊」を飼い慣らす:JSにおける数値演算の暗部と解法JavaScriptにおいて、`NaN`(Not-a-Number)ほど誤解され、かつプロダクション環境で致命的なバグを誘発する存在はない。IEEE 754浮動小数...
スポンサーリンク