typeof和instanceof之间有什么区别,什么时候应该使用vs?

在我的情况下:

callback instanceof Function

要么

typeof callback == "function"

没关系,有什么区别?

回答:

使用instanceof自定义类型:

var ClassFirst = function () {};

var ClassSecond = function () {};

var instance = new ClassFirst();

typeof instance; // object

typeof instance == 'ClassFirst'; // false

instance instanceof Object; // true

instance instanceof ClassFirst; // true

instance instanceof ClassSecond; // false

使用typeof了内置的简单类型:

'example string' instanceof String; // false

typeof 'example string' == 'string'; // true

'example string' instanceof Object; // false

typeof 'example string' == 'object'; // false

true instanceof Boolean; // false

typeof true == 'boolean'; // true

99.99 instanceof Number; // false

typeof 99.99 == 'number'; // true

function() {} instanceof Function; // true

typeof function() {} == 'function'; // true

使用instanceof复杂的内建类型:

/regularexpression/ instanceof RegExp; // true

typeof /regularexpression/; // object

[] instanceof Array; // true

typeof []; //object

{} instanceof Object; // true

typeof {}; // object

最后一个有点棘手:

typeof null; // object

以上是 typeof和instanceof之间有什么区别,什么时候应该使用vs? 的全部内容, 来源链接: utcz.com/qa/397294.html

回到顶部