JS文字列を数値に変換する方法

不言
リリース: 2018-07-09 14:52:34
オリジナル
1813 人が閲覧しました

この記事では主に JS の文字列を数値に変換する方法を紹介します。必要な方は参考にしてください。以下の5種類です!しかし、人々を不意を突くような状況が常に存在します。将来の便宜のために、ここでそれらをまとめてみましょう

parseInt

JsPerf.com のベンチマーク テストによると、ほとんどのブラウザは parseInt に最もよく反応します。これが最も速い方法ではありますが、preseInt を使用すると、いくつかの一般的な落とし穴に遭遇します:

parseInt: ベースが渡されない場合、デフォルトでは、渡されるベースは 10 parseInt(num, 10) です。 num 属性では、文字列を数値に変換するために parseInt を使用しないでください。

parseInt('043') // returns 0 部分老浏览器.
parseInt('20.mp4') // returns 20
ログイン後にコピー
parseFloat

これは、16 進数を解析しない場合に非常に良いオプションです。

文字列内の負の 16 進数は特殊なケースであり、parseFloat で解析すると結果は不正確になります。プログラム内で NaN の状況を回避するには、変換された値を確認する必要があります。

parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0
parseFloat('44.jpg') // return 44
ログイン後にコピー
Bitwise NOT

は文字列を整数に変換できますが、それは浮動小数点数ではありません。文字列変換の場合は 0 が返されます

その原理は何ですか?反転することにより) 各ビットは、数値の A1 補数とも呼ばれます。これを使用することもできますが、整数を格納するためにのみ使用できることに注意してください。したがって、数値が 32 ビット整数の間にあることが確実でない限り、通常は使用しないでください (ToInt32 を呼び出す仕様のため)。

ビットごとの NOT: これを使用して、入力に文字が含まれず、整数のみが含まれていることを確認します。

~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0
ログイン後にコピー
Number

Number には、上記の変換方法と同じ問題があります。解析時に、指定された数値を見つけようとします。

注: 023 は、実際には 8 進数です。 19 が返されます。一重引用符または二重引用符のない 16 進数の場合も同様です。

Number も JsPerf の中で最も遅いものの 1 つです。

Number("023") // returns 23
Number(023) // returns 19
ログイン後にコピー
単項クラウド演算子

"1.23" * 1 // returns 1.23
"0xFF" - 0 // returns 255
"0xFF.jpg" / 1 // returns NaN
+"023" // returns 23
ログイン後にコピー

単項演算子は、他の解析メソッドとは異なります。NaN 値の場合は、NaN も返します。これは、数値を変換する私のお気に入りの方法です。文字を含むオブジェクトは 0 として扱われたり、ビット数に基づいて「推測」されたりするべきではないと考えているからです。

この方法は混乱が少ないため、基本的に + 演算子を使用します。

-0 の使い方も良いのですが、数値に変換するという本来の意図がうまく表現されていません。 上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

js 非同期 for ループの概要


jQuery-Ajax は Json データをリクエストし、それをフロントエンド ページにロードします

以上がJS文字列を数値に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート