搜索
编程论坛
→
WEB开发
→
『 JavaScript论坛 』
→ 数组长度
标题:
数组长度
取消只看楼主
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
结帖率:
66.67%
楼主
已结贴
√
问题点数:20 回复次数:5
数组长度
var name = [1,2];
alert(name.length);结果是5,这是闹哪样
2015-05-26 09:15
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
第
2
楼
得分:0
回复 2楼 林月儿
name这个关键字是干嘛的
追求卓越,成功就会跟着你走!
2015-05-26 10:59
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
第
3
楼
得分:0
回复 6楼 林月儿
name=[1,2]的length,在不同的浏览器下是不一样的,IE显示的是正确的2,火狐和chrome显示的是3。
name和id是不类似的,id不是js的关键字,id=[1,2]的length在ie,firefox和chrome下的值都是2。
name这个关键字在js中到底是干什么用的?
追求卓越,成功就会跟着你走!
2015-05-26 14:37
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
第
4
楼
得分:0
回复 9楼 冰镇柠檬汁儿
name是window的属性,那alert也是window的属性,如果执行var alert = [1,2];alert.length的值却是正确的。
不管你是不是window的属性,当我将其覆盖后,再求其值,应该是覆盖后的值,比如var alert = [1,2];alert.length的值是2。window的alert方法已经不存在了。
而,当我对window的name赋值时,不管你赋什么值,它都会先执行toString方法,将你的赋值转为字符串类型再赋给name。但IE确没有做这样的类型转换,window的name属性确确实实被覆盖了。
追求卓越,成功就会跟着你走!
2015-05-27 13:34
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
第
5
楼
得分:0
回复 11楼 冰镇柠檬汁儿
我说的覆盖就是window.name的值被覆盖啊。js是做不到将一个变量声明为string类型,因为js本身就是弱类型语言,给一个变量什么值,这个变量就是什么类型,变量的类型是根据它的值来决定。
好比window.alert是function类型,但alert=[1,2,3]之后,alert就变成了数组类型。
再来说window.name,即使它原来是字符串类型,给它一个数组,它是不是也应该抛弃它原来的字符串类型而变成数组类型呢,
可能是给window.name赋值时,浏览器内部会将值转为字符串赋给name,也可能是读取window.name时,浏览器内部将window.name转为字符串类型返回。
至于是怎么转成字符串类型的,不知道,但为什么唯独对name这么处理,对alert为什么不转成function类型而是乖巧的变成数组。。。。。。
追求卓越,成功就会跟着你走!
2015-05-27 16:58
jsRank
等 级:
职业侠客
威 望:
6
帖 子:69
专家分:303
注 册:2015-5-11
第
6
楼
得分:0
回复 13楼 冰镇柠檬汁儿
就这样了!
奇怪,散分结贴,分没散到你身上啊,悲剧了。。。
[
本帖最后由 jsRank 于 2015-5-27 23:30 编辑
]
追求卓越,成功就会跟着你走!
2015-05-27 23:28
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-445779-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.183007 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved