javascript權威指南--類型轉換

類型轉換

類型轉換的目的
計算機執行算術計算,要求操作數有相同的大小(位的數量相同),存儲方式相同,因此需要轉換類型
顯式轉換和隱式轉換
隱式轉換:編譯器可以自動處理這些轉換而不需要程序員介入
顯示轉換:程序員使用強制運算符執行轉換
for example–隱式轉換

10+"object"//=>"10 object"
"7"*"4"//=>28
var n=1-"X";//=>NaN
n+"object";//=>"NaN objects":NaN轉換爲字符串"NaN"

類型轉換表

原始值轉還原始值
原始值轉換爲布爾值
以下值被轉換爲false
- undefined
- null
- 0
- -0
- NaN
- “”//null string
原始值轉換爲對象
原始值通過調用String(),Number(),Boolen()構造爲函數,轉換爲各自的包裝對象
- null
- undefined
轉換爲TypeError(異常)

轉換和相等性

  • ==相等運算符
  • ===恆等

相等運算符是數字的比較
- null=undefined//boolen 相等
- “0”==0//字符串轉換爲數字
- 0==false//比較之前布爾值轉換爲數字
- “0”==false//比較之前布爾值和字符串都轉換爲數字
注意值的轉化不意味着相等,“==”運算符從不試圖將兩值進行相等

顯式類型轉換

javascript 會自動進行類型的轉換,但仍需要顯示轉換
目的使代碼的可讀性增強
**方法**Boolen(),Number(),String(),Object() 不通過new運算符調用時,作爲類型轉換函數做類型轉換:

Number("3")//=>3
String(false)//=>"false" 或使用false.toString()
Boolen(1)//=>true
Object(3)//=>new Number(3)

除null和undefined外的任何值都具有toString()方法,該方法與String()相同。

//顯式轉換
object(null)//return null object
object(undefined)//return null object
//隱式轉換
Throws Error
X+""//等價於String(x)
+x//等價於Number(x)寫成x-0
!!x//等價於Boolen(x)注意爲雙歎號

toString() 轉換參數的可選基數

var n=17;
binary_String=n.toString(2)//轉換爲“10001”
octal_String=n.toString(8)//轉換爲“021”
hex_String=n.toString(16)//轉換爲“0x11

精確類型轉換
Number 類中數字到字符串的類型場景定義了三個方法

  • toFixed()根據小數後的指定位數將數字轉換爲字符串
  • toExponential()根據指數記數法將數字轉換爲字符串
  • toPrecision()根據有效數字位數將數字轉換爲字符串
var n=1234567;
n.toFixed(0);//"123457"
n.toFixed(2);//"123456.79"
n.toFixed(5);//"123456.78900"
n.toExponential(1);//"1.2e+5"
n.toExponential(3);//"1.235e+5"
n.tpPrecision(7);//"123456.8"

parseInt(),parseFloat() 全局函數不從屬於任何類 parse:理解,解析
靈活且不受限制,parseInt():解析整數
parseFloat()解析浮點數

字符串前綴爲“ox”,parseInt()將其解析爲十六進制數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章