在運算式中使用變數時,JavaScript會自動地將一種類型值變成另一種類型。也就是說在運算式中可有不同類型的資料群組合,JavaScript在運算時完成使運算式有意義所必需的類型轉換。在JavaScript中類型的轉換是按其運算的優先順序進行的,一般來說,字串運算的優先順序較高,然後依次是浮點運算、整型運算和邏輯運算。
例如:運算式"test"+5,先將數字5轉換成字串"5",並附加到字串"test"後面,結果為test5
parseInt 轉換成整數.
parseFloat 轉換成浮點數
parseFloat()函數:類似於parseInt()函數,它返回字串上包含的第一個浮點數。如果字串不以有效浮點數開頭,則返回0。
例如:parseFloat("2.1e4xyz")返回21000;而parseFloat("xyz")返回0。
基礎資料型別 (Elementary Data Type)轉換的三種方法:
1.轉換為字元型:String(); 例:String(678)的結果為"678"
2.轉換為數值型:Number(); 例:Number("678")的結果為678
3.轉換為布爾型:Boolean(); 例:Boolean("aaa")的結果為true
從一個值中提取另一種類型的值的方法:
1.提取字串中的整數:parseInt(); 例:parseInt("123zhang")的結果為123
2.提取字串中的浮點數:parseFloat(); 例:parseFloat("0.55zhang")的結果為0.55
3.執行用字串表示的一段javascript代碼:eval(); 例:zhang=eval("1+1")的結果zhang=2
註:eval()函數:將字串運算式轉換成數字值。例如,語句total=eval("432.1*10")的結果是total=4321即將數值4321賦予total變數。
在下面的例子中,執行加法運算時,數字值被轉換成了字串值;而執行乘法運算時,字串值轉換為NaN(非數)。
<html>
<head>
<title>特殊字元的顯示</title>
</head>
<body>
<script language = "JavaScript" type = "text/javascript">...
<!--
var myString = "test";
var num = 1;
document.write(myString + num); document.write("<br/>");
document.write(num + myString); document.write("<br/>");
document.write(myString * num); document.write("<br/>");
document.write(num * myString);
// -->
</script>
</body>
</html>
在IE中的顯示結果如所示。
在以上樣本中,由於“+”操作符既可以進行數字運算,也可以進行字串運算(相當於字串的拼接),因此按優先順序進行字串運算;而“*”操作符只能對數值進行操作。那麼字串乘一個數有什麼意義呢?沒有意義。此時,字串值被轉換為“非數”NaN,數字與NaN相乘,結果當然還是“非數”NaN。
什麼是NaN呢?NaN即“Not a Number”,即“不是一個數”。當運算無法返回正確的數值時,就會返回“NaN”值。NaN值非常特殊,因為它“不是數字”,所以任何數跟它都不相等,甚至NaN本身也不等於NaN。
parseInt()函數:把字串轉換成整數。返回是從字串的第一個字元開始,如果字元不是以整數開頭則返回0。parseInt()函數還可以轉換十六進位數或十進位數。
例如:parseInt("123xyz") 返回123,而parseInt("xyz")返回0。