[解決済み】parseInt(null, 24) === 23... 待って、何?
質問
さて、parseIntが初期化されていない値をどのように処理するのかを確認するためにいじっていたら、このgemに行き当たりました。24以上の基数の場合、以下のようになります。
parseInt(null, 24) === 23 // evaluates to true
IE、Chrome、Firefoxでテストしたところ、すべてtrueのアラートが出たので、どこかの仕様にあるのだろうと思っているのですが、どうでしょうか?Googleで検索しても結果が出なかったので、どなたか説明していただけると幸いです。
クロックフォードのスピーチを聞いていて思い出したのですが、彼が言っていたのは
typeof null === "object"
というのも、メモリ上でObjectとNullがほぼ同じ型識別子になってしまうという見落としがあったとか、そういうことです。
試してみてください。 http://jsfiddle.net/robert/txjwP/
編集
訂正:基数が大きくなると異なる結果が返され、32は785077を返します。
2を編集
zzzzBovより。
[24...30]:23, 31:714695, 32:785077, 33:859935, 34:939407, 35:1023631, 36:1112745
tl;dr
理由を説明する
parseInt(null, 24) === 23
は、真の文である。
どのように解決するのですか?
変換中
null
を文字列
"null"
と入力し、変換を試みます。0から23までの基数の場合,変換できる数値はない。
NaN
. 24の時。
"n"
が加わり、14文字になりました。31で
"u"
が追加され、文字列全体が解読できるようになりました。37以降は生成できる有効な数字がなくなり、NaNが返される。
js> parseInt(null, 36)
1112745
>>> reduce(lambda x, y: x * 36 + y, [(string.digits + string.lowercase).index(x) for x in 'null'])
1112745
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] parseInt(1/0, 19)はなぜ18を返すのですか?
-
[解決済み】JavaScript版sleep()とは?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み] テスト
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない