抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

  typeof用来判断一个变量是否为原始类型,即是否为6种原始值:Null, Undefined, Boolean, Number, String, Symobl 中的一种。

其用法为

1
2
let a = "";
console.log(typeof a);//string

  使用typeof判断变量,将会返回变量对应的类型。如果该变量是引用值,那么不管它是什么对象,typeof都会返回object。值得注意的是,如果该变量是原始值中的Null类型,typeof也会返回object

  typeof只能判断一个变量是什么原始类型,对于引用类型,它只能返回object,与之相对instanceof就是用来判断一个变量是不是给定引用类型的。其用法为

1
result = variable instanceof constructor

​ 原型链决定了一个变量是不是给定引用类型。因为所有引用值都是Object的实例,所以通过instanceof检测任何引用值和Object构造函数都会返回true。同样的,如果用instanceof检测原始值,则始终会返回false,因为原始值不是对象。

   因此,typeofinstanceof的区别有两个:

  1. 用法不一样,typeof返回待判断变量的类型,instanceof则相当于==,判断该变量是否为我给出的类型。

  2. 判断的值类型不一样,typeof用来判断原始值,instanceof用来判断引用值。

评论