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; // falsetypeof '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; // truetypeof /regularexpression/; // object
[] instanceof Array; // true
typeof []; //object
{} instanceof Object; // true
typeof {}; // object
最后一个有点棘手:
typeof null; // object
以上是 typeof和instanceof之间有什么区别,什么时候应该使用vs? 的全部内容, 来源链接: utcz.com/qa/397294.html