JS 判断数据类型
概述
在 JS 中有许多中提供了几个原生的判断数据类型方法,本文主要介绍 JS 中的判断基本数据类型的四个方法: typeof, instanceof, constructor, prototype
1.typeof
很多人都会误以为 typeof 是一个函数,因为一元运算符是可以用括号将运算数包裹起来的,所以让看起来非常像一个函数,如 !(condition) 实际上 typeof 并不是一个函数,也不是一个语句,而是一个一元运算符(就像 ++, –, !)。
用typeof可以判断以下几种基本的数据类型: string 如果这个值是字符串 number 如果这个值是数值 boolean 如果这个值是布尔值 function 如果这个值是函数 object 如果这个值是对象、数组或 null undefined 如果这个值未定义 使用 typeof 判断后返回的是 字符串 类型
2.instanceof
instanceof 运算符用来判断一个构造函数的 prototype 属性所指向的对象是否存在另外一个要检测对象的原型链上,需要区分大小写。( instanceof 不是函数,是一个双目运算符如 +, -… )
需要注意的是,instanceof 只能用来判断对象和函数,不能用来判断字符串和数字等。判断它是否为字符串和数字时,只会返回false。
3.constructor
在 Javascript 中每一个具有原型的对象都拥有一个 constructor 属性 (Object.constructor) constructor 属性返回对创建此对象的数组函数的引用。
constructor 可以判断所有类型,包括Array。但是,constructor在类继承时会出错。 详见:
判断数据类型
4.prototype
以上三种方法多少都会有一些不能判断的情况。为了保证兼容性,可以通过 Object.prototype.toString 方法,判断某个对象值属于哪种内置类型。
需要注意大小写