JavaScript是一門弱類型語言,其靈活的設計初衷也帶來了隱式轉換的弊端;下面是對js數據類型轉換的梳理es6
首先得知道js的數據類型6種基本數據類型與object設計
null
、undefined
、string
、number
、boolean
、symbol
(es6新增)+
、-
、*
、/
等等)的隱式轉換:會將非number
轉換成number;注意,當+
有一邊爲string時,+
屬於字符串鏈接符;其餘數據類型轉number的規則(此規則屬於ecma標準,須要記憶):原數據類型 | 轉換成number 後的結果 |
---|---|
number |
原number |
string |
純數字的字符串會轉成對應數字,含非數字的會轉換成NaN |
null |
0 |
undefined |
NaN |
boolean |
true => 1 ; false => 0 |
==
、+
、>=
)的隱式轉換: 當有一邊含有string時,會將非string的轉成字符串來處理;其餘數據類型轉字符串的規則(此規則屬於ecma標準,須要記憶):原數據類型 | 轉換成string 後的結果 |
---|---|
number |
數字對應的string |
null |
'null' |
undefined |
'undefined' |
boolean |
true => 'true' ; false => 'false' |
注意:不含symbol是由於symbol不能轉換
注意:兩邊都是對象時
==
運算符比較的是對象內存地址,