知识点------判断是否为对象或数组 (其中含有 假值 和 数据类型 的 概念)

  • 数据类型:

  • ECMAScript变量包含两种不同数据类型的值:基本数据类型引用数据类型
    基本数据类型:名值存储在栈内存中;
    引用数据类型:名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值。
  • 1.目前基本数据类型有:Boolean、Null、Undefined、Number、String、Symbol,
    2.引用数据类型有:Object、Array、Function、RegExp、Date等
    3.深拷贝与浅拷贝的概念只存在于引用数据类型
  • 假值:

  • undefined null false 0 ''(空字符串) 以及 NaN  为6假值

 

1.极力推荐方法:判断是否为数组或对象,均可用!!!

function is(arg){
    return Object.prototype.toString.call(arg) === '[object Array]'  |  '[object Object]'
}

2.instanceof 需要注意的是由于数组也是对象,因此用 arr instanceof Object 也为true。

obj instanceof Object   //[] 或 {}  均为 Object ,此方法不适合判断数组

3.使用constructor方法

constructor 属性返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数。


那么判断各种类型的方法:
console.log([].constructor == Array);  //true      ————————————————————
console.log({}.constructor == Object);  //true       ____________________
console.log("string".constructor == String); //true
console.log((123).constructor == Number);  //true
console.log(true.constructor == Boolean);  //true

两者均可由construtor来判断类型~~~~

 单独判断:

Array:

ES5定义了Array.isArray:

Array.isArray([]) //true  

 

你可能感兴趣的:(知识点总结,数据类型,假值,判断方法)