JavaScript 4©2ch.net (398レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
65(3): デフォルトの名無しさん [sage] 2015/02/17(火)22:35 ID:DEFQP+nD(3/4)
>>60
・{hoge: true, foo: false} のように Object 型でオプションを指定したい場合
・配列のようなオブジェクト(NodeList等)を判定したい場合
72(2): デフォルトの名無しさん [sage] 2015/02/18(水)17:28 ID:yNLF/Zre(1/2)
>>65
> ・{hoge: true, foo: false} のように Object 型でオプションを指定したい場合
直感的に思いついた通りに実装すればいいだろ
function test(hoge, foo) {
'use strict';
if (typeof hoge === 'boolean') {
console.log('hoge is', hoge);
} else if (typeof hoge === 'object') {
if (hoge.hasOwnProperty('hoge') && typeof hoge.hoge === 'boolean') {
console.log('hoge is', hoge.hoge);
}
if (hoge.hasOwnProperty('foo') && typeof hoge.foo === 'boolean') {
console.log('foo is', hoge.foo);
}
}
}
test(true, false);
test({hoge: true, foo: false});
test({hoge: 2});
test({hage: 2});
> ・配列のようなオブジェクト(NodeList等)を判定したい場合
「ような」なんだから
if (hoge.length > 0) {
// 配列の「ような」オブジェクト
}
で問題ないだろ
78(2): デフォルトの名無しさん [sage] 2015/02/18(水)23:37 ID:86t2mSil(2/3)
>>65 はそもそも何を持って配列のようなオブジェクトといいたいのだろう
さすがに{length:10}を配列のようなものとは呼びたくないけど
85(2): デフォルトの名無しさん [sage] 2015/02/19(木)08:45 ID:ACeVxkIV(1)
>>76
> 単にnullチェック抜けてるって言えば済む問題を○型が考慮されてないとか
> お前の方が素人丸出しだ
そのコードは typeof 演算子の "Object (native and does not implement [[Call]])" しか対応できてないだろう?
http://es5.github.io/#x11.4.3
前方互換性をふまえれば、ES6 でも正しく判定出来ることが望ましい
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator
Null 型を誤検知するだけなら「Object 型の一部」とはいわない
あなたは ECMAScript 仕様書をまともに読んだことがないだろう?
ES 仕様に言及している意見に反論するなら仕様書ぐらい読んで欲しい
>>78
> >>65 はそもそも何を持って配列のようなオブジェクトといいたいのだろう
わかりやすくいうならば、 Array.prototype.forEach と同様の判定といえるかな
Array.prototype.forEach では ToObject, ToInt32 で型変換しているわけだが、型変換せずに TypeError を返したい状況もあるだろう
http://es5.github.io/#x15.4.4.18
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s