我正在使用 node.js,所以这可能是 V8 特有的。
我一直注意到 typeof 和 instanceof 之间存在一些奇怪的差异,但这里有一个让我很困扰:
var foo = 'foo';
console.log(typeof foo);
Output: "string"
console.log(foo instanceof String);
Output: false
那里发生了什么?
最佳答案
typeof
是一个构造,它“返回”你传递给它的任何东西的原始类型。
instanceof
测试右操作数是否出现在左原型(prototype)链中的任何位置。
需要注意的是,字符串字面量"abc"
和字符串对象new String("abc")
之间有很大的不同。在后一种情况下,typeof
将返回“object”而不是“string”。
关于javascript - JavaScript 中 typeof 和 instanceof 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839656/