1.其他資料型別轉換為number
有 3 個函式可以把非數值轉換為數值:Number() 、 parseInt() 和 parseFloat() 。第一個函式, 即轉型函式 Number() 可以用於任何資料型別,而另兩個函式則專門用於把字串轉換成數值。日常使用中,parseInt)()比較的常用,
而在 ECMAScript 5 JavaScript 引擎中, parseInt() 已經不具有解析八進位制值的能力,因此前導的零會 被認為無效,從而將這個值當成 "70" ,結果就得到十進位制的 70。在 ECMAScript 5 中,即使是在非嚴格 模式下也會如此。
為了消除在使用 parseInt() 函式時可能導致的上述困惑,可以為這個函式提供第二個引數:轉換 時使用的基數(即多少進位制)。如果知道要解析的值是十六進位制格式的字串,那麼指定基數 16 作為第 二個引數,可以保證得到正確的結果
parseInt()與parseFloat()的區別:
1.parseInt()會忽略非數字字元,parseFloat()除對第一個小數點有效, 也會忽略非數字字元
2.它們都會忽略前導0;
3.parseInt()不解析8進位制,parseFloat()只解析10進位制
Boolean:true和false 分別轉換為1和0;
number:簡單的傳入和返回
null:0
undefined:NaN
string:1.若單純為數字,轉換為10進位制數字(忽略前導0);例:"123"轉為123,"011"轉為11
2.如果為有效浮點數,則轉換為對應的浮點數值,例:"1.5"轉換為1.5
3.如果為有效16進位制格式,轉換為同等的10進位制數,例:'0xf'轉化為15
Object:如果是物件,則呼叫物件的 valueOf() 方法,然後依照前面的規則轉換返回的值。如果轉換 的結果是 NaN ,則呼叫物件的 toString() 方法,然後再次依照前面的規則轉換返回的字元 串值。不過一般都是轉換為NaN,如果想要轉換為所需要的數字,可以修改valueOf()和toString()方法4.如果為空字串,轉換為0,例:''轉為0, 5.如果是除上述之外的字元,轉換為NaN,例:
2.其他資料型別轉換為字串
要把一個值轉換為一個字串可以使用toString() 方法
number:例:1轉換為'1',
Boolean:例:true轉換為'true',false轉換為'false'
null:報錯,沒有此方法
undefined:報錯,沒有此方法
string:返回一個字串副本
Object:返回 "[object Object]"
3.其他資料型別轉換為布林值
資料型別 | 轉換為true值 | 轉換為false值 |
---|---|---|
Boolean | true | false |
String | 任何非空字串 | ""空字串 |
Number | 任何非零數值(包括無窮大) | 0和NaN |
Object | 任何物件 | |
Undefined | 不適用 | undfined |
null | 不適用 | null |
6個falsey:false,""空字串,null,undefined, 0和NaN
4.由於Undefined和Null,Object的特殊性,所以轉換型別沒有意義,沒有轉換方法。
5.參考資料
javascript高階程式設計(第三版)