JavaScript數據類型

數據類型

ECMAScript包括兩個不一樣類型的值:基本數據類型和引用數據類型正則表達式

基本數據類型

String、 Number、 Boolean、 Null、 Undefined、 Symbol (ECMAScript 6 新定義)bash

基本數據類型是指存放在棧中的簡單數據段,數據大小肯定,內存空間大小能夠分配,它們是直接按值存放的,因此能夠直接按值訪問。函數

引用數據類型

Object(在JS中除了基本數據類型之外的都是對象,數據是對象,函數是對象,正則表達式是對象)。spa

引用類型是存放在堆內存中的對象,變量實際上是保存的在棧內存中的一個指針(保存的是堆內存中的引用地址),這個指針指向堆內存prototype

typeof檢測數據類型

> typeof "abc"   "string" 字符串
> typeof abc     "undefined" 未定義
> typeof 0       "number" 數值
> typeof null    "object" 對象或者 null
> typeof console.log  "function" 函數
> typeof true         "boolean" 布爾類型值

複製代碼

數據類型正確判斷方法

Object.prototype.toString.call(variable)

用這個方法來判斷數據類型目前是最可靠的了,它總能返回正確的值指針

該方法返回 "[object type]", 其中type是對象類型。code

Object.prototype.toString.call(null) "[object Null]"
Object.prototype.toString.call([]); "[object Array]"
Object.prototype.toString.call({}); "[object Object]"
Object.prototype.toString.call(123); "[object Number]"
Object.prototype.toString.call('123'); "[object String]"
Object.prototype.toString.call(false); "[object Boolean]"
Object.prototype.toString.call(undefined); "[object Undefined]"

複製代碼

typeof檢測數據類型

String Boolean Number Undefined 四種基本類型的判斷 除了 Null 以外的這四種基本類型值,均可以用 typeof 操做符很好的進行判斷處理。對象

使用 === 判斷null

除了 Object.prototype.toString.call(null) 以外,目前最好的方法就是用 variable === null 全等來判斷了。ip

var a = null;
if (a === null) {
    console.log('a is null');
}
//  a is null
a is null
複製代碼
相關文章
相關標籤/搜索