JavaScript 轉(zhuǎn)換為數(shù)字
■知識點
常用值轉(zhuǎn)換為數(shù)字說明如下。
1 => 1
0 => 0
true => 1
false => 0
"" => 0
Undefined => NaN
null => 0
NaN => NaN
Infinity => Infinity
把值轉(zhuǎn)換為數(shù)字的常用方法有以下3種。
parselnt():可以把值轉(zhuǎn)換為整數(shù)。
parseFloatO:可以把值轉(zhuǎn)換為浮點數(shù)。
使用乘號運算符。
■實例設計
parselnt()方法可以把前面分析合法的數(shù)字字符全部轉(zhuǎn)換為數(shù)值并返回。
console.log (parselnt ("123abc")); //返回數(shù)字 123
console.log(parselnt ("1.73")); //返回攀字 1
console, log (parselnt (".123")); //返回值NaN
如果是以0為開頭的數(shù)字宇符串,則parselntO把它作為八進制數(shù)字處理:先把它轉(zhuǎn)換為八進制的數(shù)值,然后再轉(zhuǎn)換為十進制數(shù)字返回。
如果以Ox為開頭的數(shù)字字符串,則parselntO把它作為十六進制數(shù)字處理:先把它轉(zhuǎn)換為十六進制數(shù)值,然后再轉(zhuǎn)換為十進制數(shù)字返回。
var d = 010; //八進制數(shù)字字符串
var e = "0x10"; //十六進制數(shù)字字符串
console. log (parselnt (d)); //返回十進制數(shù)字8
console. log (parselnt (e) ); //返回十進制數(shù)字16
parselntO也支持基模式,可以把二進制、八進制、十六進制等不同進制的數(shù)字字符串轉(zhuǎn)換為整數(shù)。 基模式由parselnt()函數(shù)的第二個參數(shù)指定。
下面的代碼把十六進制數(shù)字字符串"123abc"轉(zhuǎn)換為十進制整數(shù)。
var a = "123abc";
console.log (parselnt(a, 16)); //返回值十進制整數(shù) 1194684
下面的代碼把二進制、八進制和十進制數(shù)字字符串轉(zhuǎn)換為十進制的整數(shù)。
console.log(parselnt ("10",2)); //把二進制數(shù)字10轉(zhuǎn)換為十難制整數(shù)為2
console.log(parseInt ("lO",8)); //把八進制數(shù)字10轉(zhuǎn)換為十邊制整數(shù)為8
console.log(parselnt ("10",10)); //把十進制數(shù)宇10轉(zhuǎn)鐵為十進制整數(shù)為10
如果第1個參數(shù)是十進制的值,包含0前綴,為了避免被誤解為八進制數(shù)字,則應該指定第2個參數(shù)值為10,即顯式定義基模式,而不是采用默認基模式。
console.log (parselnt ("010") ) ; //把默認基模式數(shù)字010轉(zhuǎn)換為十進制整數(shù)為10
console.log (parselnt ("010", 8) ) ; //把八進制數(shù)字010轉(zhuǎn)換為十進制整數(shù)為8
console.log (parselnt ("010", 10) ); //把十進制數(shù)字010轉(zhuǎn)換為十進制整數(shù)為10
parseFloatO的參數(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("0xl0n)); //返回數(shù)值0
console.log(parseFloat("xl0n)); //返回數(shù)值NaN
如果變量乘以1,則變量會被JavaScript自動轉(zhuǎn)換為數(shù)值,乘以1之后,結(jié)果沒有發(fā)生變化,但是值的類型被轉(zhuǎn)換為數(shù)值。如果值無法被轉(zhuǎn)換為合法的數(shù)值,則返回NaN。
var b = 1; //數(shù)值
var b = "1"; //數(shù)字字符串
console.log(a + (b * 1)); //返回數(shù)值2
點擊加載更多評論>>