は考える:parseIntがJavascriptで配列を正しくテストできないのはなぜですか?
var obj={0:21,1:22}
と
var arr=[21,22]
をなぜparseInt(obj)
リターンNaN
が、parseInt(arr)
戻り21
?
私にはint
、ハッシュタイプobject
または平文array
を渡すかのいずれかの関数がありました。私はparseInt
がobject
とarray
の両方に対してNaN
を返すことを期待していたので、引数チェックが簡単になりました。何がありますか?
なぜあなたは 'parseInt()'をまったく使用していますか?私が使っている唯一の2つのものは、(a)非ベース10入力、(b)入力文字列をCSSの "10px"のような既知のフォーマットで解析して、ちょうど '10'部分を必要とするものです。単項+演算子 '+ [21,23]'のように 'Number([21,22])'が 'NaN'を返すと信じています。 – nnnnnn
@nnnnnn - なぜですか? 'if isNaN(parseInt(argument1))... 'です。早くて簡単。害は何ですか?私はフリップではない。私は本当に興味があります。 – user1167442
'argument1'が文字列' '123abc" 'であれば、それは有効な数字ではありませんが、' 'parseInt(" 123abc ")'は '123'を返します。実際に*必要な結果であれば、 'parseInt()'を使用してください。しかし、私の経験上、それは意味をなさないことは非常にまれです。関数の引数がすでに*数値*(オブジェクトや配列ではない)であることをテストしたい場合は、 'typeof'演算子を使用できます。 – nnnnnn