关于JavaScript中的typeof与instanceof

Posted yuanchao-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JavaScript中的typeof与instanceof相关的知识,希望对你有一定的参考价值。

javascripttypeofinstanceof可以用来判断一个数据的类型,什么时候选择使用typeof?什么时候选择使用instanceof?

typeof运算符

typeof运算符返回值有以下几种

  • 原始数据类型
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
  • 函数类型
function f() 
typeof f
// "function"
  • undefined
typeof undefined
// "undefined"
var x
typeof x
// "undefined
  • Object
typeof window // "object"
typeof  // "object"
typeof [] // "object"
typeof null // "object

instanceof运算符

instanceof是判断变量是否为某个对象的实例,返回值为true或false。

var o = ;
var a = [];

o instanceof Array // false
a instanceof Array // true
a instanceof Object // true

typeof 对数组 [] 和对象 的返回值都是Object,无法区分数组和对象,但是instanceof可以区分。

对于什么时候该使用typeofinstanceof

  • 当变量可能为undefined的时候使用typeof运算符
alert(typeof undefinedVariable); // alerts the string "undefined"
alert(undefinedVariable instanceof Object); // throws an exception
  • 当变量可能为null的时候使用instanceof运算符
var myNullVar = null;
alert(typeof myNullVar ); // alerts the string "object"
alert(myNullVar  instanceof Object); // alerts "false"

link:
https://stackoverflow.com/questions/899574/what-is-the-difference-between-typeof-and-instanceof-and-when-should-one-be-used

https://www.jianshu.com/p/1216b1f429fb

以上是关于关于JavaScript中的typeof与instanceof的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中的typeof和instanceof

javascript中typeof与instanceof的区别

javascript中的typeof和类型判断

JavaScript中“typeof”运算符与“instanceof”运算符的差异

[TypeScript] type、typeof、keyof

java中用啥方法判断数据类型,就行 javascript中的 typeOf一样