浏览 3734 次
锁定老帖子 主题:json和数组的疑问
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-01
var temH = [1, 2, 3, 4, 5, 6]; temH["html"]="html"; temH["text"]="text";如上代码 temH.length=6,temH.text="text 那temH自身是啥? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-04-01
var temH = [1, 2, 3, 4, 5, 6];
temH["html"]="html"; temH["700"]=700; temH["text"]="text"; 这种情况怎么解释? |
|
返回顶楼 | |
发表时间:2012-04-01
JS中数组(Array)也属于对象(Object),你可以看作它的父类是对象,所以也能用a[b]=c形式添加属性。
而数组有重写定义属性(DefineOwnProperty)的这个流程(参考ECMA-262 v5 15.4.5.1) 如果属性名b是个有效数字,那么走完对象更新属性的原始逻辑后,还会触发数组自身的逻辑,更新length 如果是其它的,则走对象的原始逻辑 |
|
返回顶楼 | |
发表时间:2012-04-03
数组也是对象,temH["html"]="html"; temH["text"]="text";这是为对象的属性赋值,可以比较一下两种循环 一个是for(var i in temH) 和 for(var i=0;i<temH.length;i++)
打印出temH[i]的值就会发现不同哦,foreach不仅会打印数组的内容,而且还会打印出属性值,而第二个循环只会打印数组中的值 |
|
返回顶楼 | |
发表时间:2012-04-05
narutolby 写道 数组也是对象,temH["html"]="html"; temH["text"]="text";这是为对象的属性赋值,可以比较一下两种循环 一个是for(var i in temH) 和 for(var i=0;i<temH.length;i++)
打印出temH[i]的值就会发现不同哦,foreach不仅会打印数组的内容,而且还会打印出属性值,而第二个循环只会打印数组中的值 谢谢了,刚才试着验证了一下,很有帮助 |
|
返回顶楼 | |
发表时间:2012-04-05
godnuk 写道 narutolby 写道 数组也是对象,temH["html"]="html"; temH["text"]="text";这是为对象的属性赋值,可以比较一下两种循环 一个是for(var i in temH) 和 for(var i=0;i<temH.length;i++)
打印出temH[i]的值就会发现不同哦,foreach不仅会打印数组的内容,而且还会打印出属性值,而第二个循环只会打印数组中的值 谢谢了,刚才试着验证了一下,很有帮助 ![]() |
|
返回顶楼 | |
发表时间:2012-04-06
wangyj0898 写道 godnuk 写道 narutolby 写道 数组也是对象,temH["html"]="html"; temH["text"]="text";这是为对象的属性赋值,可以比较一下两种循环 一个是for(var i in temH) 和 for(var i=0;i<temH.length;i++)
打印出temH[i]的值就会发现不同哦,foreach不仅会打印数组的内容,而且还会打印出属性值,而第二个循环只会打印数组中的值 谢谢了,刚才试着验证了一下,很有帮助 ![]() 学习啦~~~~~ |
|
返回顶楼 | |