
ちょっと前に、株式会社LIGのブログでundefined
はただのグローバル変数だからvoid 0
を使うほうがよいみたいな記事がありました。
いろいろ調べてみると、それだけが理由ではないように思えたので、そこらへんをまとめてみました。
1行でまとめると次のようになります。
undefined
との比較判定には、やっぱりvoid 0
を使うこと (ほとんどのブラウザで最速だから)
もうすこし細かい話をすると、
- ECMAScript 5では
undefined
に上書きできない- グローバルオブジェクトの
undefined
のプロパティ属性[[Writable]]
がfalse
のため
- グローバルオブジェクトの
みたいな感じです。