JavaScript是一种动态语言,不用提前声明变量的类型,程序在运行时自动确定数据类型。
数据类型
JS分两种数据类型:
基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6),这些类型可以直接操作保存在变量中的实际值。
引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象)
判断数据类型
1.使用typeof能判断出四种,分别是number,string,boolean,object,剩余的均被检测为object。
2.使用instanceof,根据instanceof的定义:判断参照对象的prototype属性所指向的对象是否在被行测对象的原型链上。
3.使用constructor检测
针对于instanceof的弊端,我们使用constructor检测,constructor是原型对象的属性指向构造函数。这种方式解决了instanceof的弊端,可以检测出除了undefined和null的9种类型 ,但是这种方式仍然有个弊端,就是constructor所指向的的构造函数是可以被修改的。
4、使用Object.prototype.toString.call
Object.prototype.toString可以取得对象的内部属性[[class]],并根据这个内部属性返回诸如"[object Number]"的字符串.那么我们就可以通过call获取内部属性[[class]] 例如: Object.prototype.toString.call(num)//"[object Number]"