js資料型別間的互相轉換

Jc Bound發表於2019-03-20

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

4.如果為空字串,轉換為0,例:''轉為0, 5.如果是除上述之外的字元,轉換為NaN,例:

js資料型別間的互相轉換
Object:如果是物件,則呼叫物件的 valueOf() 方法,然後依照前面的規則轉換返回的值。如果轉換 的結果是 NaN ,則呼叫物件的 toString() 方法,然後再次依照前面的規則轉換返回的字元 串值。不過一般都是轉換為NaN,如果想要轉換為所需要的數字,可以修改valueOf()和toString()方法

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高階程式設計(第三版)

6.未完待續……

相關文章