判断javascript的数据类型

情到浓时终转凉″ 提交于 2019-12-18 03:29:07

1. typeof

typeof 操作符返回变量或表达式的类型。

语法: typeof arr;

这种数据类型检测只对简单数据类型适用,对数组和对象不实用.

2. instanceof

instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上

语法: obj instanceof Object;

这种方式对检测对象的实例比较好用,但是还是区分不了数组和对象.

3. constructor

constructor 属性返回对创建此对象的数组函数的引用。

语法: object.constructor

'str'.constructor === String

4. Object.prototype.toString.apply()或者Object.prototype.toString.call()

使用toString() 方法返回一个表示该对象的字符串,每个对象都有一个 toString() 方法,toString() 方法被每个 Object 对象继承。为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,称为 thisArg

语法: Object.prototype.toString.apply(thisArg) 或者 Object.prototype.toString.call(var)

let arr = [];
Object.prototype.toString.apply(arr); // "[object Array]"
Object.prototype.toString.call(arr); // "[object Array]"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!