JS數據類型分爲簡單數據類型(基本數據類型)和複雜數據類型(引用數據類型)。函數
基本數據類型:Undefined、Null、Boolean、Number、String、Symbol。測試
引用數據類型:Object。prototype
能夠經過typeof操做符判斷以上7種數據類型,語法:typeof 變量,返回值以下:指針
- "undefined" —— 若是這個值未定義;事實上,若是這個變量未聲明,返回值也是undefined
- "boolean" —— 若是這個值是布爾值
- "string" —— 若是這個值是字符串
- "number" —— 若是這個值是數值
- "object" —— 若是這個值是對象或null
- "symbol" —— 若是這個值是Symbol函數生成的
- "function" —— 若是這個值是函數
數據類型
Undefined類型code
- 只有一個值:undefined
- 聲明變量後未經初始化,則默認值是undefined;因此不必將一個變量顯性地設置爲undefined
Null類型對象
- 只有一個值:null
- 空對象指針
- undefined派生自null,因此它們的相等性測試 undefined == null 返回 true
- 與undefined不一樣的是,只要意在保存對象的變量尚未真正保存對象,就應該明確地讓變量初始化爲null
Boolean類型blog
- Number類型
- 字面量
- 整數
- 十進制:ddd,d:0~9
- 八進制: 0ddd,d:0~7。嚴格模式下無效,會致使支持嚴格模式地JS引擎拋出錯誤
- 十六進制:0xddd,d:0~9及A~F(小寫也能夠)
- 浮點數值
- 合法寫法
- 1.1
- 0.1
- .1 --> 0.1
-
- --> 整數 1
- 1.0 --> 整數 1
- 極大極小值,用e表示
- 3.125e7 --> 31250000
- 3e-7 --> 0.0000003
- 最大精度17位
- 數值範圍
- Number.MIN_VALUE
- Number.MAX_VALUE
- 超範圍顯示Infinity和-Infinity --> Number.POSITIVE_INFINITY和Number.NEGATIVE_INFINITY
- 函數isFinite():參數在極小和極大之間返回true,不然false
- NaN
- Not a Number
- NaN == NaN 返回 false
- 函數isNaN():參數先被轉換成Number類型,轉換後的結果是NaN返回true,不然false;參數是對象,會先調用valueOf()方法,若是返回值能轉換爲數值,則進行測試,不然再調用toString()方法,進行測試
- 數值轉換
Number()原型
Boolean |
1和0 |
Number |
無變化 |
Null |
0 |
Undefined |
0 |
String |
只包含數字(包括前面帶正號或負號的狀況)--> 十進制數值,如"-123" --> 123,"077" --> 77(不會被認爲是八進制); 有效浮點格式 --> 浮點值; 十六進制(0x) --> 十進制數值; 其它 --> NaN |
Object |
valueOf()→如果NaN(好比Object對象)→toString()→再按以上規則 |
- parseInt()
- 字符串從前日後取數字(符合整數格式),碰到非數字中止
- 第二個參數指定進制,如8,10,16
- parseFloat()
- 注:valueOf()
- 對象原型方法:返回對象的原始值。
- 查看對象的原始值辦法
- String類型
- 字符:16位Unicode
- "" 或 ''
- 轉義字符:
- 其它類型轉換爲String類型
- toString()
- Boolean、Number、String、Object都有toString()方法
- Null、Undefined沒有toString()方法
- Object.prototype.toString.call():能夠查看數據類型
- 轉型函數String()
- 有toString()方法的調用toString()
- null --> "null"
- undefined --> "undefined"
- 字符串拼接
Symbol類型string
- Object類型
- Object 就是一組數據和功能的集合
- 全部對象的基礎,如Function、Array、Date
- Object每一個實例都有:constructor、hasOwnProperty(propertyName)、isPropertyOf(object)、propertyIsEnumerable(propertyName)、toLocaleString()、toString()、valueOf()
檢測數據類型
- 操做符 typeof
- 能檢測出的類型:Undefined、Null、Boolean、Number、String、Object、Symbol和函數
- 操做符 instanceOf
- 區分具體對象類型,如 [1,2,3] instanceof Array --> true ; 1 instanceof Number --> true
- null、undefined不行
- 方法 constructor()
- 方法 toString()