盡管js可以做許多自動類型轉換,但某些時候仍然需要做顯示類型轉換或為了代碼邏輯清晰易讀而做顯示類型轉換。
做顯示類型轉換最簡單的方法就是用boolean()、number()、string()或object()函數:
js中的某些運算符會做隐式類型轉換,比如:
若+運算符一個操作數是字元串,則它會将另一個操作數轉換為字元串;
一進制+運算符将其操作數轉換為數字;
一進制!運算符将操作數轉換為布爾值并取反;
代碼中經常可以看到如下類型轉換的用法:
number類定義的tostring()方法可以按轉換基數(radix)将數字轉換為其它進制數的字元串表示(2-36之間):
number類還為數字到字元串的類型轉換場景定義了另外3個方法:
tofixed()根據小數點後的指定位數将數字轉換為字元串,它從不使用指數記數法。
toexponential()使用指數記數法将數字轉換為指數形式的字元串,其中小數點前隻有一位,小數點後位數由參數指定:
toprecision()根據指定的有效數字位數将數字轉換為字元串,如果有效數字位數小于數字整數部分的位數則轉換為指數形式。
以上3個方法都會适當的進行四舍五入或填充0.
需要說明的是前面提到的number()函數隻能基于十進制數進行轉換,而且不能出現非法字元。我們可以使用全局函數(不屬于任何類的方法)parseint或parsefloat函數來進行字元串到數字的轉換;
parseint()隻解析整數,而parsefloat()可以解析整數和浮點數。
如果字元串字首為”0x”或者”0x”,parseint()将其解釋為16進制數;parseint和parsefloat都會跳過任意數量的前導空格,且盡可能解析更多的數值字元;如果第一個非空格字元是非法數字,則傳回nan。
parseint可以接收第二個可選參數,該參數指定數字轉換的基數,取值範圍是2-36.