JS常用的數據類型
基本數據類型
- 數字 number
- 字符串string
- 布爾 boolean
- 空對象指針 null
- 未定義 undefined
引用數據類型
- 對象數據類型 object
普通對象:用{ } 存放數據
數組對象:用[ ] 存放數據
正則對象 - 函數數據類型 function
1. 數字類型Number
包含: 常規數字 和 NaN
1.1 NaN:not a number
NaN和任何值都不相等包括它自己(六親不認)。
console.log(NaN==NaN) //false
console.log(12==NaN) //false
console.log('A'==NaN) //false
所以當我們要判斷一個數字是不是有效數字,千萬別用NaN來驗證。檢測數字是否爲有效數字可以使用 isNaN (is not a number),如果不是數字返回true,是數字返回false。
console.log(isNaN('A')) //true
console.log(isNaN(3)) //false
console.log(isNaN('3')) //false
isNaN的機制是如果判斷對象不 是數字類型,會先對對象進行Number轉化成數字類型,然後再判斷。
1.2 把其他類型轉換數字類型
轉換方法:Number([val])
a. 把字符串轉爲數字,只要字符串包含任意一個非有數字字符,結果都是NaN,第一個字符爲小數點除外。
console.log(Number('12.5')) //12.5
console.log(Number('12.5px')) //NaN
console.log(Number('.125')) //0.125
console.log(Number('a12.5x')) //NaN
console.log(Number('')) //0
b. 布爾轉換爲數字
console.log(Number(true)) //1
console.log(Number(false)) //0
c. null 和 undefined
console.log(Number(null)) //0
console.log(Number(undefined)) //NaN
e. 對象轉數字
引用類型數據類型轉換爲數字,是先把他基於toString方法轉換爲字符串,然後在轉換爲數字,當字符串轉換數字時,就是上面說的方法了(只要字符串包含任意一個非有數字字符,結果都是NaN,第一個字符爲小數點除外。)
console.log(Number({})) //NaN
console.log(Number({name:'10'})) //NaN
console.log(Number([]) //0
console.log(Number([12])) //12
console.log(Number([12,16])) //NaN
1.3. parseInt,parseFloat
對於字符串來說,從左到右依次查找有效數字,直到遇到非有效數字字符停止,不管後面還有沒有有效數字,把找到的數字轉換爲數字類型。
console.log(parseInt('12.5px')) // 12
console.log(parseInt('1A2.5px')) // 1
console.log(parseInt('A12.5px')) // NaN
console.log(parseInt('true')) // NaN
console.log(parseFloat('12.5px')) // 12.5
console.log(parseFloat('1A2.5px')) // 1
console.log(parseFloat('A12.5px')) // NaN
console.log(parseFloat('false')) // NaN
2.字符串String
定義:所有用單引號、雙引號包起來的都是字符串
2.1 把其他類型值轉換爲字符串
轉換方法:[value].toString()
基本上所有值轉換爲字符串都是在外邊加上雙引號即可,除null,undefined,對象等除外。
console.log('A12.5px'.toString()) // A12.5px
console.log((NaN).toString()) // NaN
console.log((true).toString()) //true
console.log((false).toString()) //false
console.log((null).toString()) //error
console.log((undefined).toString()) //error
console.log(({name:'zs'}).toString()) //[object Object]
2.2 字符串拼接
四則運算法則中,除加法外,其餘都是數學運算,加法可做爲字符串拼接符。
console.log('12'+6) // 126
console.log('12'-6) // 6
console.log('12px'-6) //NaN