js中的數據類型轉換,一般都是將一種類型的數據轉換為number,string和boolean這三種基本類型,包括顯式類型轉換和隱式類型轉換。本章介紹基本類型到基本類型的轉換,對象轉換為基本類型的介紹將另開一章。
顯式類型轉換
? ? a. 轉換為boolean值
????通過Boolean()函數,轉換為布爾值,規則為:除了0,NaN,false,undefined,null,‘’ 轉為false,其他的所有值都轉換為true。
? ? b. 轉換為number值
????轉換為數值類型時,有三種方式:Number(),parseInt(),parseFloat()。其中Number()可以將任意類型轉換為數值類型,而另外兩個則是專門將字符串類型轉換為數值。
? ? Number()的轉換規則為:
? ? parseInt()的轉換規則為:
? ? parseFloat的轉換規則為:parseFloat()的轉換規則和parseInt()類似,只是會將第一個小數點當做有效值,而它會忽略掉前導的零。parseFloat同樣會解析各種數據格式,但是十六進制始終返回0。
? ? c. 轉換為字符串
? ? 轉換為字符串有2種方式:toString()方法和String()方法。
? ? 除了null和undefined沒有toString()方法,其他的數據類型都有toString()方法,將數字類型轉換為字符串時,可以傳遞一個參數作為基數,表示將十進制的數字轉換為該基底的字符串。
? ? String()方法可以將任意類型的數據轉換為字符串,包括undefined和null。
隱式類型轉換
? ? 隱式類型轉換大致包括如下幾類:
? ? a. isNaN()
? ? isNaN函數內部調用Number()函數進行數字的轉換
? ? b. ++,--,+/-(一元正負運算)
? ? 調用Number()轉換為數字后再計算
? ? c. +
? ? 加號中如果兩邊有一個為字符串,則轉換為字符串;如何兩邊為數字或者布爾值,則進行加法運算,對布爾值,調用Number()方法轉換為數字。
? ? d. -,*,/,%
? ? 調用Number()轉換為數字后計算
? ? e. &&,||,!
? ? 轉換為boolean類型
? ? f. >,<,>=,<=,==,!=
? ? 根據兩邊的類型進行轉換,兩邊有一個為數字或者布爾值,調用Number()轉換為數字后進行數字的比較;都為為字符串,進行字符串的比較;比較特殊的情況:undefined == null,(undefined > 0,undefined < 0,undefined = 0均為false),NaN == NaN為false