在javascript中,可以使用parseInt()函數(shù)來強制轉(zhuǎn)換成整型數(shù)據(jù),語法“parseInt(string)”;parseInt()函數(shù)可解析一個字符串,并返回一個整型數(shù)據(jù)。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
JavaScript是弱類型語言,它的值數(shù)據(jù)類型是可以變的。
有些語言要求指定每個變量的數(shù)據(jù)類型,這樣的語言叫強類型語言,如java C++
強制類型轉(zhuǎn)換
類型轉(zhuǎn)換有兩種:一種是顯式轉(zhuǎn)換,即需要程序員手動寫代碼轉(zhuǎn)換;另一種是隱匿轉(zhuǎn)換,由JavaScript解釋器轉(zhuǎn)換。
JavaScript提供以下函數(shù)進行顯式轉(zhuǎn)換:
1.轉(zhuǎn)換為數(shù)值類型:Number(mix)、parseInt(string,radix)、parseFloat(string)
2.轉(zhuǎn)換為字符串類型:toString(radix)、String(mix)
3.轉(zhuǎn)換為布爾類型:Boolean(mix)
轉(zhuǎn)換為數(shù)值類型
Number(mix)函數(shù)
Number(mix)函數(shù),可以將任意類型的參數(shù)mix轉(zhuǎn)換為數(shù)值類型。其規(guī)則為:
1、如果是布爾值,true和false分別被轉(zhuǎn)換為1和0
2、如果是數(shù)字值,返回本身。
3、如果是null,返回0
4、如果是undefined,返回NaN。
5、如果是字符串,遵循以下規(guī)則:
a.如果字符串中只包含數(shù)字,則將其轉(zhuǎn)換為十進制(忽略前導0)
b.如果字符串中包含有效的浮點格式,將其轉(zhuǎn)換為浮點數(shù)值(忽略前導0)
c.如果是空字符串,將其轉(zhuǎn)換為0
d.如果字符串中包含非以上格式,則將其轉(zhuǎn)換為NaN
6、如果是對象,則調(diào)用對象的valueOf()方法,然后依據(jù)前面的規(guī)則轉(zhuǎn)換返回的值。如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對象的toString()方法,再次依照前面的規(guī)則轉(zhuǎn)換返回的字符串值。
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>數(shù)據(jù)類型轉(zhuǎn)換</title> </head> <body> <script> println(Number(false)); println(Number(true)); println(Number(123)); println(Number(123.25)); println(Number(null)); println(Number(undefined)); println(Number(person)); function println(a){ document.write(a+'<br>'); } var person={};//字面量創(chuàng)建對象 // 設置字面量對象屬性 person.name='huangshiren'; person.age=58; person.appetite=3; person.eat=function(){ document.write('正在吃飯'); } </script> </body> </html>
parseInt(string, radix)函數(shù)
參數(shù)說明:
string 要被解析的值。如果參數(shù)不是一個字符串,則將其轉(zhuǎn)換為字符串(使用 ToString 抽象操作)。字符串開頭的空白符將會被忽略。
radix 一個介于2和36之間的整數(shù)(數(shù)學系統(tǒng)的基礎),表示上述字符串的基數(shù)。比如參數(shù)"10"表示使用我們通常使用的十進制數(shù)值系統(tǒng)。始終指定此參數(shù)可以消除閱讀該代碼時的困惑并且保證轉(zhuǎn)換結(jié)果可預測。當未指定基數(shù)時,不同的實現(xiàn)會產(chǎn)生不同的結(jié)果,通常將值默認為10。
parseInt(string, radix)函數(shù),將字符串轉(zhuǎn)換為整數(shù)類型的數(shù)值。它也有一定的規(guī)則:
1.忽略字符串前面的空格,直至找到第一個非空字符
2.如果第一個字符不是數(shù)字符號或者負號,返回NaN
3.如果第一個字符是數(shù)字,則繼續(xù)解析直至字符串解析完畢或者遇到一個非數(shù)字符號為止
4.如果上步解析的結(jié)果以0開頭,則將其當作八進制來解析;如果以x開頭,則將其當作十六進制來解析
5.如果指定radix參數(shù),則以radix為基數(shù)進行解析
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>數(shù)據(jù)類型轉(zhuǎn)換</title> </head> <body> <script> println(parseInt("12.34567",10)); println(parseInt("de",10)); println(parseInt("0123456789",10)); println(parseInt("0e0",16)); println(parseInt("0101010001",2)); function println(a){ document.write(a+'<br>'); } </script> </body> </html>
parseFloat(string)函數(shù)
parseFloat(string)函數(shù),將字符串轉(zhuǎn)換為浮點數(shù)類型的數(shù)值。
它的規(guī)則與parseInt基本相同,但也有點區(qū)別:字符串中第一個小數(shù)點符號是有效的,另外parseFloat會忽略所有前導0,如果字符串包含一個可解析為整數(shù)的數(shù),則返回整數(shù)值而不是浮點數(shù)值。
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>數(shù)據(jù)類型轉(zhuǎn)換</title> </head> <body> <script> println(parseFloat("3.14")); println(parseFloat("314e-2")); println(parseFloat("0.0314E+2")); println(parseFloat("3.14more non-digit characters")); function println(a){ document.write(a+'<br>'); } </script> </body> </html>
轉(zhuǎn)換為字符串類型
toString(radix)方法。除undefined和null之外的所有類型的值都具有toString()方法,其作用是返回對象的字符串表示。
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>數(shù)據(jù)類型轉(zhuǎn)換</title> </head> <body> <script> var count=10; println(count.toString()); var boolean=true; println(boolean.toString()); var today=new Date(); println(today.toString()); var shoppingCart=['鞋','連衣裙','皮帶']; println(shoppingCart.toString()); var person={};//字面量創(chuàng)建對象 // 設置字面量對象屬性 person.name='huangshiren'; person.age=58; person.appetite=3; person.eat=function(){ document.write('正在吃飯'); } println(person.toString()); function println(a){ document.write(a+'<br>'); } </script> </body> </html>
轉(zhuǎn)換為布爾類型
Boolean(mix)函數(shù),將任何類型的值轉(zhuǎn)換為布爾值。
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>數(shù)據(jù)類型轉(zhuǎn)換</title> </head> <body> <script> var count=10; println(Boolean(count)); println(Boolean(0)); println(Boolean(4<3)); println(Boolean(null)); println(Boolean("")); println(Boolean(undefined)); var shoppingCart=['鞋','連衣裙','皮帶']; println(Boolean(shoppingCart)); var person={};//字面量創(chuàng)建對象 // 設置字面量對象屬性 person.name='huangshiren'; person.age=58; person.appetite=3; person.eat=function(){ document.write('正在吃飯'); } println(Boolean(person)); function println(a){ document.write(a+'<br>'); } </script> </body> </html>