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)
复制代码
第一篇文章。但愿你们多多指教。
相关文章
相关标签/搜索