js數據類型及判斷

一,js的數據類型

數據類型分爲兩種數組

  1. 基本數據類型:以值類型存儲在棧內存裏
  2. 複雜數據類型:以引用地址存儲在棧內存裏,實際值存在堆內存裏;

基本數據類型

包括:number;string;boolean;undefined;null;symbol(ES6新增類型)函數

複雜數據類型

包括:object;array;function;map(ES6新增類型);set(ES6新增類型)ui

二,當只判斷基本數據時

  1. 只須要:typeof 簡單類型 ==> 獲得你判斷當類型
  2. 注意: typeof null === 'object'
  3. 注意: typeof Function === 'function'

三,當只判斷複雜數據類型時

  1. 可用instanceof。可是不可靠
  2. 對象 instanceof 構造函數 ==> 判斷構造函數的protoytpe屬性所指的對象 是否在對象的原型鏈上;
eg1:
    function Person(){}
    var p = new Person();
    p instanceof Person // true
eg2:
    p instanceof Object // true
eg3:
    [1,2] instanceof Object // true
eg4:
    [1,2] instanceof Array // true
    Array.isArray([]) // true 只判斷爲數組時可用
複製代碼
  1. 由上可知。用instanceof判斷也不許確

四,大招:準確判斷全部類型

// 利用call的第一個參數能夠轉換爲他的原始構造函數類型的原理
var ele;
Object.prototype.toString.call(ele).slice(8, -1)
複製代碼
第一篇文章。但願你們多多指教。
相關文章
相關標籤/搜索