javascript中把字符轉(zhuǎn)化為數(shù)字的方法:1、使用“parseInt(value)”語句;2、使用“parseFloat(value)”語句;3、利用乘號運算符,語法“value * 1”;4、使用“Number(value)”語句。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
1、使用 parseInt()
parseInt() 是一個全局方法,它可以把值轉(zhuǎn)換為整數(shù)。轉(zhuǎn)換的過程如下:
-
先解析位置 0 處的字符,如果不是有效數(shù)字,則直接返回 NaN。
-
如果位置 0 處的字符是數(shù)字,或者可以轉(zhuǎn)換為有效數(shù)字,則繼續(xù)解析位置 1 處的字符,如果不是有效數(shù)字,則直接返回位置 0 處的有效數(shù)字。
-
以此類推,按照從左到右的順序,逐個分析每個字符,直到發(fā)現(xiàn)非數(shù)字字符為止。
parseInt() 將把前面分析合法的數(shù)字字符全部轉(zhuǎn)換為數(shù)值并返回。
console.log(parseInt("123abc")); //返回數(shù)字123 console.log(parseInt("1.73")); //返回數(shù)字1 console.log(parseInt(".123")); //返回值NaN
浮點數(shù)中的點對于 parseInt() 來說屬于非法字符,因此不會轉(zhuǎn)換小數(shù)部分的值。
2、使用 parseFloat() 函數(shù)
parseFloat() 也是一個全局方法,它可以把值轉(zhuǎn)換為浮點數(shù),即它能夠識別第一個出現(xiàn)的小數(shù)點,而第二個小數(shù)點被視為非法。解析過程與 parseInt() 方法相同。
console.log(parseFloat("1.234.5")); //返回數(shù)值 1.234
parseFloat() 的參數(shù)必須是十進制形式的字符串,而不能使用八進制或十六進制的數(shù)字字符串。同時,對于數(shù)字前面的 0(八進制數(shù)字標識)會忽略,對于十六進制的數(shù)字將返回 0。
console.log(parseFloat("123")); //返回數(shù)值 123 console.log(parseFloat("123abc")); //返回數(shù)值 123 console.log(parseFloat("010")); //返回數(shù)值 10 console.log(parseFloat("0x10")); //返回數(shù)值 0 console.log(parseFloat("x10")); //返回數(shù)值 NaN
3、使用乘號運算符
如果變量乘以 1,則變量會被 JavaScript 自動轉(zhuǎn)換為數(shù)值。乘以 1 之后,結(jié)果沒有發(fā)生變化,但是值的類型被轉(zhuǎn)換為數(shù)值。如果值無法被緩緩為合法的數(shù)值,則返回 NaN。
var a = 1; //數(shù)值 var b = "1"; //數(shù)字字符串 console.log(a + (b * 1)); //返回數(shù)值 2
4、使用 Number() 函數(shù)
Number() 強制轉(zhuǎn)換與 parseInt() 和 parseFloat() 方法的處理方式不同,Number() 轉(zhuǎn)換的是整體,而不是局部值。
console.log(Number("123abc")); //返回NaN console.log(Number("123")); //返回數(shù)值123
【推薦學習:javascript高級教程】