2011-11-04 21 views
24

$.isNumeric!isNaN()の間に違いはありますか?

私はどこで結果が異なるか分かりません。

jQueryのブログから
+0

いただきました!あなたのクエリ?私には分かりません。 –

+4

'isNaN()'は、具体的には実際にはNaN値をチェックします。 – Orbling

+1

@Arif - OPは '$ .isNumeric'と' isNaN() 'の違いを尋ねています。 –

答えて

26

:我々は、引数が数値であるか、それはいくつかの他のタイプであれば、正常数値に変換されるだろうかどうかを知る必要があり、いくつかの状況を発見したjQueryの内部

。 jQuery.isNumeric()は有用なユーティリティであるため、jQuery.isNumeric()を作成してドキュメント化することにしました。任意の型の引数を渡し、必要に応じてtrueまたはfalseを返します。


jQuery.isNaN():このドキュメントに記載されていないユーティリティ関数が除去されました。組み込みのJavaScript関数の名前を充当したが、同じセマンティクスを持たなかったため、混乱していました。新しいjQuery.isNumeric()も同様の目的を果たしますが、文書化されサポートされる利点があります。 jQuery.isNaN()が文書化されていないにもかかわらず、Githubのいくつかのプロジェクトがそれを使用していました。私たちはそれらに連絡し、jQuery.isNumeric()または他の解決法を使用するように頼んだ。

もチケットを参照してください。値が数値であるか数値に変換できる場合http://bugs.jquery.com/ticket/10478


jQueryのisNumeric()チェックを。

EDIT

さらにisNan()が何を明らかにする(及びどのNaN値である):を "非数" を意味

AのNaNは、プリミティブとして分類され値をECMA-262標準で指定し、指定された値が正当な値ではないことを示します。この関数は、引数が数値でない場合はtrueを、引数が数値の場合はfalseを返します。

NaNでの古典的な例では、ゼロで除算しゼロでPeeHaaが言うように0/0

Code: 
document.write(isNaN("Ima String")) 
document.write(isNaN(0/0)) 
document.write(isNaN("348")) 
document.write(isNaN(348)) 

Output: 
true 
true 
false 
false 

http://www.devguru.com/technologies/ecmascript/quickref/isnan.html

セミofftopicが、関連this short talk

+2

私はOPがネイティブJS関数isNaN()を参照していると思います - jQueryのバージョンではありません。 –

+0

@KirkWoll:updated – PeeHaa

+0

あなたの更新は上記のOrblingのコメントと矛盾します。そして、私が集めることができるものから、正しいものは正しかった。 –

13

ある、$.isNumeric()チェック値が数値であるか数値に変換できるかにかかわらず、isNaN()は、値がNaNかどうかを厳密にチェックします。

はここjQuery documentation's例(比較を容易にするために!isNaN$.isNumeric()を比較)を使用して便利な比較表です:http://jsfiddle.net/eghE9/

+0

Juhanaさんありがとうございました。私はこれを今の私の行列に差し込んだ。 http://www.phillipsenn.com/Matrix/jQuery/Utilities/jQuery.isNumeric.cfm –

+0

ニース、ありがとう...何か新しいことを学んだ;) –

+1

この答えが 'as PeeHaa says'で始まり、情報は彼の答えよりも、後で投稿された、なぜPeeHaaの答えに有利に受け入れられたのですか? @Phillip –

関連する問題