Eri*_*ric 27 javascript syntax typeof instanceof node.js
我正在使用node.js,所以这可能是V8特有的.
我总是注意到typeof和instanceof之间存在一些奇怪的差异,但这里有一个让我烦恼的事:
var foo = 'foo';
console.log(typeof foo);
Output: "string"
console.log(foo instanceof String);
Output: false
Run Code Online (Sandbox Code Playgroud)
那里发生了什么?
Nie*_*sol 40
typeof是一个构造,它"返回"你传递它的任何原始类型.
instanceof测试以查看右操作数是否出现在左侧原型链的任何位置.
重要的是要注意字符串文字"abc"和字符串对象之间存在巨大差异new String("abc").在后一种情况下,typeof将返回"object"而不是"string".
有文字字符串,有String类.它们是分开的,但它们可以无缝地工作,即您仍然可以将String方法应用于文字字符串,并且它将像文字字符串是String对象实例一样.
如果您显式创建一个String实例,它就是一个对象,它是String该类的一个实例:
var s = new String("asdf");
console.log(typeof s);
console.log(s instanceof String);
Run Code Online (Sandbox Code Playgroud)
输出:
object
true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53320 次 |
| 最近记录: |