アカウント名:
パスワード:
ES5 の tyoeof 演算子 [github.io] の仕様は心から何とかしてほしいですが、ES6 の typeof 演算子 [mozilla.org] でも手を入れられる様子がありません…。
typeof null === 'object' ; // Null 型なのに "object"typeof new Function === 'function'; // Object 型なのに "function"typeof arg === 'hoge'
null は !object で判別すれば特に困ることはないと思う。undefined も同じだけど null と undefined を区別したい時は typeof 使えば undefined を区別出来るから問題ないよ。
null は !object で判別すれば特に困ることはないと思う。
Null 型に関しては仰るとおり、値で判定すれば良いので実質的には困っていないのですが、型を判定する演算子として用意された「typeof演算子」が「型」となる文字列以外を返している事から統一性がない現状を生み出しており、混乱の元となっている点は否めないと思います。
特に「Object 型として返す文字列値」の広範さは何なんですか、と軽く怒りを覚えます。ES5 までは Object 型の判定として下記コードにようにしていました。 https://gist.github.com/think49/887049/38781c5081dd6845fe0d2169192ff4a... [github.com]
ところが、ES6 になって Symbol 型が増えて上記コードは Symbol
なるほど、詳しい説明どうも。typeof null の結果は JavaScript の最大の設計ミスと言われてるし…。たけど、Symbol についてはまだ不勉強でよく分かってなかった。教えてもらったコード見ながら、ちょっと調べてみようと思う。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
JavaScript (ECMAScript 5) の typeof 演算子 (スコア:1)
ES5 の tyoeof 演算子 [github.io] の仕様は心から何とかしてほしいですが、ES6 の typeof 演算子 [mozilla.org] でも手を入れられる様子がありません…。
Re: (スコア:2)
null は !object で判別すれば特に困ることはないと思う。
undefined も同じだけど null と undefined を区別したい時は typeof 使えば undefined を区別出来るから問題ないよ。
Re: (スコア:1)
Null 型に関しては仰るとおり、値で判定すれば良いので実質的には困っていないのですが、型を判定する演算子として用意された「typeof演算子」が「型」となる文字列以外を返している事から統一性がない現状を生み出しており、混乱の元となっている点は否めないと思います。
特に「Object 型として返す文字列値」の広範さは何なんですか、と軽く怒りを覚えます。
ES5 までは Object 型の判定として下記コードにようにしていました。
https://gist.github.com/think49/887049/38781c5081dd6845fe0d2169192ff4a... [github.com]
ところが、ES6 になって Symbol 型が増えて上記コードは Symbol
Re:JavaScript (ECMAScript 5) の typeof 演算子 (スコア:2)
なるほど、詳しい説明どうも。
typeof null の結果は JavaScript の最大の設計ミスと言われてるし…。
たけど、Symbol についてはまだ不勉強でよく分かってなかった。
教えてもらったコード見ながら、ちょっと調べてみようと思う。