JavaScript 轉(zhuǎn)換為數(shù)字
■知識點(diǎn)
常用值轉(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)換為浮點(diǎn)數(shù)。
使用乘號運(yùn)算符。
■實(shí)例設(shè)計(jì)
parselnt()方法可以把前面分析合法的數(shù)字字符全部轉(zhuǎn)換為數(shù)值并返回。
console.log (parselnt ("123abc")); //返回?cái)?shù)字 123
console.log(parselnt ("1.73")); //返回攀字 1
console, log (parselnt (".123")); //返回值NaN
如果是以0為開頭的數(shù)字宇符串,則parselntO把它作為八進(jìn)制數(shù)字處理:先把它轉(zhuǎn)換為八進(jìn)制的數(shù)值,然后再轉(zhuǎn)換為十進(jìn)制數(shù)字返回。
如果以O(shè)x為開頭的數(shù)字字符串,則parselntO把它作為十六進(jìn)制數(shù)字處理:先把它轉(zhuǎn)換為十六進(jìn)制數(shù)值,然后再轉(zhuǎn)換為十進(jìn)制數(shù)字返回。
var d = 010; //八進(jìn)制數(shù)字字符串
var e = "0x10"; //十六進(jìn)制數(shù)字字符串
console. log (parselnt (d)); //返回十進(jìn)制數(shù)字8
console. log (parselnt (e) ); //返回十進(jìn)制數(shù)字16
parselntO也支持基模式,可以把二進(jìn)制、八進(jìn)制、十六進(jìn)制等不同進(jìn)制的數(shù)字字符串轉(zhuǎn)換為整數(shù)。 基模式由parselnt()函數(shù)的第二個(gè)參數(shù)指定。
下面的代碼把十六進(jìn)制數(shù)字字符串"123abc"轉(zhuǎn)換為十進(jìn)制整數(shù)。
var a = "123abc";
console.log (parselnt(a, 16)); //返回值十進(jìn)制整數(shù) 1194684
下面的代碼把二進(jìn)制、八進(jìn)制和十進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制的整數(shù)。
console.log(parselnt ("10",2)); //把二進(jìn)制數(shù)字10轉(zhuǎn)換為十難制整數(shù)為2
console.log(parseInt ("lO",8)); //把八進(jìn)制數(shù)字10轉(zhuǎn)換為十邊制整數(shù)為8
console.log(parselnt ("10",10)); //把十進(jìn)制數(shù)宇10轉(zhuǎn)鐵為十進(jìn)制整數(shù)為10
如果第1個(gè)參數(shù)是十進(jìn)制的值,包含0前綴,為了避免被誤解為八進(jìn)制數(shù)字,則應(yīng)該指定第2個(gè)參數(shù)值為10,即顯式定義基模式,而不是采用默認(rèn)基模式。
console.log (parselnt ("010") ) ; //把默認(rèn)基模式數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為10
console.log (parselnt ("010", 8) ) ; //把八進(jìn)制數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為8
console.log (parselnt ("010", 10) ); //把十進(jìn)制數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為10
parseFloatO的參數(shù)必須是十進(jìn)制形式的字符串,而不能夠使用八進(jìn)制或十六進(jìn)制的數(shù)字字符串。同時(shí)對于數(shù)字前面的0 (八進(jìn)制數(shù)字標(biāo)識)會忽略,對于十六進(jìn)制形式的數(shù)字將返回0。
console.log(parseFloat("123")); //返回?cái)?shù)值123
console.log(parseFloat("123abc")); //返回?cái)?shù)值123
console.log(parseFloat("010")); //返回?cái)?shù)值10
console.log(parseFloat("0xl0n)); //返回?cái)?shù)值0
console.log(parseFloat("xl0n)); //返回?cái)?shù)值NaN
如果變量乘以1,則變量會被JavaScript自動(dòng)轉(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)); //返回?cái)?shù)值2
點(diǎn)擊加載更多評論>>