对于javascript有六种数据类型,其中包括五种基本类型(string,boolean,number,undefined,null),跟一种引用类型(Object)
对于基本类型,可能大家都比较熟悉,基本概念就不做过多的介绍。
引用类型:一组属性和方法的集合。常见的有:function、array、date等
前四种基本类型(string,boolean,number,undefined)的检测,都可以用 typeof 来进行判断变量的数据类型,例如:
但是有一种比较特殊,那就是null了,用typeof检测 null ,null 表示的是对一个空对象的引用,返回的是对象类型(object),例如:
对于这个问题,据说是历史遗留的BUG,所以我们只要记住这个就行了。但是对于 null这种类型 我们要如何判断呢
我们可以恒等于(===)来判断变量是否为null,例如:
对于引用类型(Object)的检测,可以使用 instanceof 或者 constructor 来检测对象是否为引用类型(Object)例如
但是有时候,使用instanceof 跟 constructor,不能很准确的判断出对象的类型,在不同的iframe下,instanceof跟constructor就不行了,因为不同的执行环境原型链不同,所以即使都是数组或者其它对象,都会返回false。这样下来判断各种类型的数据类型,用typeof、instanceof、constructor都没办法准确地判断所有数据类型。所以可以用Object.prototype.toString.call 精确地判断各种数据类型,例如:
以上就是JavaScript的几种数据类型的判断了,本人学生党,对本文章有不同见解或发现本文章有错误,欢迎各位大神指正