在Java中,基本類型之間的強制轉換也不是這樣的,比如,整數要轉換成字符串,必須使用Integer.toString()靜態方法或者String.valueOf()靜態方法,把字符串轉換為整數,必須使用Integer.valueOf()。
可見,不能把JavaScript中的類型轉換看作為“強制類型轉換”。
在JavaScript中,Double類型和Int類型都是看作為Number對象,因此無論是typeof 1還是typeof 1.0,都是返回number。這樣我們可以不用去管是Int還是Double類型,讓JavaScript解釋引擎內部去處理。
如果要把Number轉換成String,可以使用Number的toString()方法,(象(1).toString()括號必須或者 1 .toString()空格必須,否則會編譯出錯,如果是變量則無需),或者調用String()函數,這兩種方法都會自動調用解釋引擎內部的 NumberToString(),或者根據進制調用其它函數,基本類似。
如果要把String轉換成Number,可以使用Number()函數,他會自動判斷String中是整數還是浮點數,然後內部使用相應的數據類型,另外可以使用全局函數parseInt()和parseFloat(),他們根據你的要求進行轉換。同樣的,他們在解釋引擎內部機制上是使用了 StringToNumber,StringToInt等等內部的函數。
而如果是Double轉換成Int,必須使用Math.floor()函數(截尾取整)或者Math.round()(四捨五入)
Int轉換成Double,無須考慮任何問題,直接把Int當成Double進行運算
注:Number、String函數是特殊的函數,在JS引擎中,他會自動判斷是作為構造函數調用還是普通調用,所以既可以使用new關鍵字,也可以作為函數直接調用。
關於JS的參考手冊,微軟有一個CHM十分不錯,指南、API參考都有,是Windows腳本技術,中文版,我在MSDN上下載的。而關於JS解釋引擎的,我參考的是Netscape的Spidermonkey,現在由Mozilla組織維護。