一个javascipt问题。
发布于 12 年前 作者 harryzd 5366 次预览 最后一次回复是 12 年前 来自
######如题,仅仅是javascript语法问题。我找了很多资料也没有理出头绪,包括[javascript 神秘花园](http://bonsaiden.github.com/JavaScript-Garden/zh/#object.general)
废话不说,上代码
var a = {0:1,1:1,2:3,length:3};
上面创建了一个a对象。我想知道的是,a对象中,a[1]是什么类型?OK,做如下试验。
a[1] instanceof Number
//false
typeof a
//return number
…那么a[1]到底是什么类型?难道不是数字吗?那么为什么
a[1]instanceof Number
回返回false
9 回复
不是很清晰, 但
instanceof还真不是按字面理解的, 比如这个:问的问题不够清晰嘛?
说明数值并不是Number类型
那为什么
原因:
#具体分析见MDN enter link description here
@HarryZD
我大概明白了
的使用需要new出来一个对象,这个对象有constructor属性。constructor属性里是这个对象的类型名称。
不是new出来的对象而是基本类型。没有constructor属性。但是
可以检测类型,并返回类型的名称。 感谢感谢
typeof a[1] ==> 'number'与a[1] instanceof Number ==>false不矛盾,说明a[1]是primitive type而非object type 别太纠结,只要记住,typeof o != 'object',则instanceof运算毫无意义@HarryZD 是我自己理解不清晰.
instanceof记得是按原型链判断的… 而且反直觉 @lb1064 的还有楼下的描述清晰多了