[解決済み】typeof NaNが'数字'を返すのはなぜ?
2022-04-23 07:37:33
質問
ちょっと気になったので。
というのはあまり論理的とは思えません。
typeof NaN
は数字です。ちょうど
NaN === NaN
または
NaN == NaN
はfalseを返します、ちなみに。これはjavascriptの特殊性の一つなのでしょうか、それとも何か理由があるのでしょうか?
編集部:ご回答ありがとうございました。でも、頭を使うのは簡単なことではありません。回答やwikiを読んで、より理解できましたが、それでも、以下のような文章は
<ブロッククオートNaNとの比較は、自分自身との比較であっても、常に順不同の結果を返します。比較述語にはシグナル型と非シグナル型があり、シグナル型はそのような比較のための無効な例外を知らせる。等式述語と不等式述語は非シグナリングであり、x = x が false を返すことは、x が静かな NaN であるかどうかをテストするために使用できる。
は、頭がクラクラしてきます。もし誰かがこれを人間(例えば数学者ではなく)に読みやすい言葉で訳してくれたら、ありがたいですね。
どのように解決するのですか?
Not a Number(数字ではない)という意味です。これはjavascriptの特殊性ではなく、コンピュータサイエンスの一般的な原理です。
から http://en.wikipedia.org/wiki/NaN :
には3種類の演算があります。 NaNを返すもの。
少なくとも1つのオペランドがNaNである演算
不定形形式
- 区分0/0、∞/∞、∞/-∞、-∞/-∞、-∞/-∞の場合
- 0×∞と0×-∞の掛け算
- 1^∞の累乗
- 加算∞+(-∞)、(-∞)+∞と同等の減算。
複雑な結果を伴う実数演算。
- 負の数の平方根
- 負の数の対数
- 90度(またはπ/2ラジアン)の奇数倍の正接
- の逆サインまたは逆コサイン。 1より大きい。
これらの値はすべて同じとは限りません。NaNの簡単なテストとしては
value == value
が偽であることを示します。
関連
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
要素ツリー制御によるvueTreeテーブル
-
vueのグローバルがscss(mixin)を導入。
-
vueにおけるfilterの適用シーンについて解説します。
-
Vueの「データを聴く」原則を解説
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります