判断JS中的类型

294 阅读1分钟

确认类型

JavaScript高级程序设计第四版4.1.4

原始值表示栈(stack)中的简单数据段。就是简单数据类型:Null Undefined String Number Boolean Symbol  
引用值就只有Object一种,其中又有特殊的Object类型,为Function和Array

typeof操作符


通常用来判断一个变量是否为原始类型。
更确切的说,他是判断一个变量是否为 字符串、数值、布尔、undefined最好方式
typeof也可以判断function类型

! typeof虽然对原始值很有用,但他对引用值的用处不大。我们通常不关心一个值是不是对象,而是想知道它是什么类型的对象。 

instanceof操作符


语法如下: result = variable instanceof constructor
该操作符解决了typeof无法确定对象类型的问题
代码如下:

console.log(person instanceof Object);		//变量person是Object吗?
console.log(colors instanceof Array);		//变量colors是Array吗?
console.log(pattern instanceof RegExp);		//变量pattern是RegExp吗?

按照定义,所有引用值都是Object的实例,因此通过 instanceof 操作符检测任何引用值和 Object 构造函数都会返回 true 。
类似的,如果用instanceof检测原始值,则始终会返回 false,因为原始值不是对象。

判断数组的另一种方式:Array.isArray()
该方法是es5提出用于网页包含多个框架 有多个全局环境使用
一般来说使用instanceof基本够用