Javascriptは数字をstringからnumberに変える5つの方式です.

2528 ワード

多くの場合、私達の数字は文字列の形式で、例えば:'1'、'3'、''2'、'4''といったように、入力ボックスから取得することができます.バックエンドからのインターフェースかもしれません.私たちは彼らを整形する義務があります.いくつかの案を紹介します.
1、パー秒Int
これはes 3ならではの文法です.使い方:
parseInt('123'); // 123  => number
jsバージョンがes 6に発展したとき、パーパーイントはNumberに移されました.もちろんです.元々のパーネットは引き続き使えます.
Number.parseInt('123'); // 123  => number
数字の中に数字以外の文字を入れると、最初に不正な文字が出たところは切り捨てられます.
Number.parseInt('1239y93p21'); // 1239  => number
2、パースFloat
ParseIntと似ていますが、パーパーミッションは主に浮動小数点に対する変換です.
parseFloat('123');          // 123  => number
Number.parseFloat('123');   // 123  => number

Number.parseFloat('123.4'); // 123.4 => number
不正な文字を断つルールがあります.
Number.parseInt('1239.34y93p21');     // 1239.34  => number
Number.parseInt('12 39.34y93p21');    // 12  => number
3、Number
エス6が新しく出たインターフェースは直接使用できます.浮動小数点数にも有効です.
Number('123');     // 123  => number
Number('123.4');   // 123.4 => number
パーパーパー*()と違って、Numberで処理する場合は、不正な文字が発生し、直接NaNになりますので、NaNのタイプもnumberです.
Number('123b');     // NaN  => number
Number('123.4b');   // NaN  => number
4、乗算+減算
はい、直接に1を乗せればいいです.
'123' * 1;     // 123  => number
'123.4' * 1;   // 123.4 => number

‘123’ - 0;    // 1234 => number
'123.4' - 0;   // 123.4 => number
不正な文字に会ったら、直接NaNです.
'123b' * 1; // NaN  => number
注意:足し算は変換できないタイプです.文字列として連結されます.
'123' + 0; // ’1230‘  => string
5、位別または
これはバイナリの処理ですが、整数しか処理できません.浮動小数点に遭遇した場合、小数点以下は破棄されます.不正な文字が発生したら、直接に0に変換されます.ビットを押すか、または 32 に数字を変換するので、余分なビット数は直接に廃棄されます.したがって、ビットまたはサポートされた整数範囲は[pow(-2, 31), pow(2, 31) - 1]である.
'123' | 0;           // 123  => number

'123.4' | 0;         // 123 => number
'123rd' | 0;         // 0 => number

a = Math.pow(2, 31) // 2147483648 <=> 10000000000000000000000000000000

a | 0               // -2147483648 => number
(a - 1) | 0         // 2147483647 => number
なぜ整数が負に変換されたのかというと、符号付きバイナリでは、最高位(32位)は1で、負の数を表しています.
余談をする
文字列配列の変換には、Numberの特性が利用できます.
['1', '2', '3'].map(Number)  // [1, 2, 3] => number[]
他にありますか?もし追加の歓迎メッセージがあれば.