質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

671閲覧

Number.IsNaN( )の使い道

Nobu_Nobuta

総合スコア28

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/26 02:28

Number.IsNaN( )ですが、どのような使い道がありますでしょうか。

MDNを見ましたし、自分でも検証してみましたが、NaN, Number.NaN, 0/0の時だけtrueを返すようですが、その他、数値を入力しても、文字列を入力しても、undefinedを入力しても、全てfalseを返します。

false(数値ではない) は数値であるとは同じ意味では無い、、、とは思うのですが、イマイチイメージが掴めません。

お手数ですがNumber.IsNaN( )を使う時はどのような時か教えて頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

お手数ですがNumber.IsNaN( )を使う時はどのような時か教えて頂けると幸いです。

関数名のとおり、NaNかどうかを判定したい場合です。

NaNは、NaN !== NaNとなるなど厄介な特徴を持っているので、専用の判定関数が必要とされます。

投稿2019/08/26 02:29

maisumakun

総合スコア146543

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/08/26 02:34

「数値であるかどうか」の判定ではありません。
Nobu_Nobuta

2019/08/26 03:33

「数値であるかどうか」の判定ではない事が、理解しきれていないのだとおもいます。 isNaNでは、'abc'といった文字列やundefinedがtrueを返すのに対し、Number.IsNaN( )が何故falseを返すのかが分かりません。
maisumakun

2019/08/26 03:56

> Number.IsNaN( )が何故falseを返すのかが分かりません。 まさに、NaNという値かどうか「だけ」をチェックする関数なのです。'abc'もfalseもNaNとは異なる値です。
Nobu_Nobuta

2019/08/26 04:22

明確なご回答ありがとうございます。 何となくですが、使い道のイメージ出来ました。 何か複雑な計算をさせて、例えば分母が0になった場合、エラーが出た時だけ警告して欲しい、、、といった感じの場合に使う感じでしょうか。
ikadzuchi

2019/08/27 01:03

> YasuhiroKubotaさん ちょっと引っかかりますね。 「何か複雑な計算をさせて~の場合に使う」のはNaNの用途です。 NaNに用途があるか否かとは別の話として、NaNをNaNでないものと区別するのがisNaNの用途です。 どうもisNaN以前にNaNがどういうものなのかの理解が足りていないように見えます。
Nobu_Nobuta

2019/08/29 01:43

ご返信ありがとうございます。 ご返信が遅くなりまして申し訳ありません。 皆様からご回答頂いた後、自分でももう少し勉強して、下記理解にたどり着きました。 isNaN( )は文字列と、undefinedと、NaNをtrueと返すのに対し、 Number.isNaN( )はNaNのみtrueと返す。 isNaNはNaNであるかの判定ではなく、引数が数値へ変換可能かどうかの判定に使われる。 表面上では理解しているつもりですが、本質を理解しているかと言われれば微妙です。
guest

0

ベストアンサー

文字列とかも引数に来うるけど、NaNの場合は0にして返したい、ってときでしょうか。
isNaNは名前の割にNaN以外もtrueにされて困る、ってときはある。

投稿2019/08/26 03:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nobu_Nobuta

2019/08/26 03:30

ご回答ありがとうございます。 例えば、'abc'といった文字列をtrueにされても困るのはどのような場合でしょうか。
退会済みユーザー

退会済みユーザー

2019/08/26 04:04

NaNの時だけ特殊処理したいときですね。なければいいんですが・・・'abc'といった文字列をtrueにされても困る場面もぱっとは思いつかないなぁ。すみません。思いついたら書きます。 とりあえず「NaN」という値があるのに、isNaN(undefined)がtureってややこしくね?ってのが一番かなぁ。isNaNって「NaNかどうか」じゃなくて「not a numberかどうか」なんかーいややこしいやないかーいって思った偉い人が多かったんでしょうね。
Nobu_Nobuta

2019/08/26 04:15

ご回答ありがとうございます。 かなり、使い方が限定されているのですね。 クリアになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問