typeof 和 instanceof 之间有什么区别,何时应该使用一个与另一个?
2022-08-29 23:10:04
在我的特殊情况下:
callback instanceof Function
或
typeof callback == "function"
这有什么关系吗,有什么区别?
其他资源:
JavaScript-Garden typeof vs instanceof
在我的特殊情况下:
callback instanceof Function
或
typeof callback == "function"
这有什么关系吗,有什么区别?
其他资源:
JavaScript-Garden typeof vs instanceof
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
两者在功能上相似,因为它们都返回类型信息,但我个人更喜欢,因为它比较的是实际类型而不是字符串。类型比较不容易出现人为错误,并且在技术上更快,因为它比较内存中的指针而不是进行整个字符串比较。instanceof