1.获取变量类型

  1. var num=10;
  2. console.log(typeof num);//获取num这个变量的数据类型

image.png

2.判断这个对象是不是某个类型的

  1. var obj={};//对象
  2. console.log(obj instanceof Object);
  3. console.log(obj.constructor == Object);//这种方式在函数的原型被改掉后会不适用

image.png

3.获取变量类型的第三种方案

//此时输出的是Object的数据类型   [object Object]
console.log(Object.prototype.toString());
//获取某个对象的数据类型的样子
//Object.prototype.toString.call(对象);//此时得到的就是这个对象的类型,
                                     //注意点是这个方法无法获取自定义函数的类型
//输出的数组的数据类型      [object Array]
console.log(Object.prototype.toString.call([]));
var arr=[10,20,30];
console.log(Object.prototype.toString.call(arr));

image.png

案例:判断某个对象是否是指定类型的对象

//判断某个对象是否是指定类型的对象
function genFun (type) {
  return function (obj) {
    //Object.prototype.toString.call(obj) 输出obj对象的数据类型
    return Object.prototype.toString.call(obj) === type
  }
}
var isArray = genFun('[object Array]')
var isObject = genFun('[object Object]')
console.log(isArray([])) // => true
console.log(isObject({})) // => true

image.png