JS數據類型
基本數據類型
String
字符串類型,申明時用單引號或雙引號引起來,兩種引號不可嵌套,不可混用
Number
數值型,有兩個特殊的數字
- Infint:無窮大
- NaN:非數值型數字,不與任何類型相等
Boolean
布爾類型,有兩個值,真和假
Null
空類型
Underfind
未定義類型,衍生自Null
Object
類型轉換(顯式)
轉換為String
- 使用要轉換類型的toString()方法,異地操作,不改變原值,返回新值
- 使用String()函數
兩種方法的不同
- 對于Number,Boolean來說,兩者并無不同,String()函數在底層依舊調用toString()方法
- 對于Null,Underfind來說,他們沒有toString()方法,String()在底層直接把他們轉換為“null”和“underfind”兩個字符串
轉換為Number
- 使用Number()函數
- 使用parseInt()或parseFloat()函數
- 沒有toNumber()方法…
兩種方法的不同:
- Number()函數:String型只能轉換純數值型,如 “123”,一旦由非數值型字符,就會被轉換為NaN,空串會被轉換為0,布爾真會被轉換為1,布爾假會被轉換為0,Null會被轉換為0,Underfing會被轉換為NaN
- parseInt和parseFloat會找出字符串中的數字進行轉換,如123abc會被轉換為123,空串,布爾,Null,Underfing會被全部轉換為NaN
轉為bool
- 字符轉布爾:除空串外其他都為true
- 數值轉布爾:除0和NaN外其他都為true
- Null和Underfind轉布爾:false
- object轉布爾:true
進制
- 十六:0x開頭
- 八:0開頭
- 二:0b開頭
與瀏覽器有關,有的瀏覽器不支持二進制或八進制
包裝類
對基本數據類型的值調用屬性和方法時,瀏覽器會用包裝類將其臨時轉換為對象,再調用對象的屬性和方法,有三個包裝類,String(),Number(),Boolearn(),他們用來將基本數據類型轉換為對象,但我們一般不用,容易出錯,如:
var bool = new Boolearn("false");
if(bool){// 會執行,應為bool是false轉換成的對象,對象轉換為布爾類型都是truealert("·····");
}