检测数据类型的三种方式及区别

var a="i am string";
var b=[1,2,3];
var c=new String("abc");   //String类实例对象
//typeof:  null 对象 数组 都是返回Object类型
console.log(typeof a);   //string
console.log(typeof b);   //object
console.log(typeof c);   //object
//instanceof无法检测是字符串,因为a只是一个一string为字符类型的值,并不是String实例对象 c可以检测因为c是String类的实例对象
console.log(a instanceof String);  //false
console.log(c instanceof String);  //true
console.log(b instanceof Array);  //true
//返回相对应的构造函数
console.log(a.constructor==String); //true
console.log(b.constructor==Array); //true

1、typeof a

  返回a的数据类型。但是null 对象 数组 都是返回Object类型

2、a instanceof String 

  返回布尔值

3、a.constructor

  返回其相对于的构造函数

  a.constructor==String   返回true

posted @ 2018-09-28 11:01  心随风飞lss  阅读(373)  评论(0编辑  收藏  举报