| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1546 人关注过本帖
标题:数组长度
只看楼主 加入收藏
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:13 
数组长度
var name = [1,2];
alert(name.length);结果是5,这是闹哪样
2015-05-26 09:15
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:7 
var na = [1,2];
alert(na.length);

剑栈风樯各苦辛,别时冰雪到时春
2015-05-26 10:26
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
收藏
得分:0 
回复 2楼 林月儿
name这个关键字是干嘛的

追求卓越,成功就会跟着你走!
2015-05-26 10:59
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
标签的标识符,和id类似但下面这个现象又说明两者关系不大
 有人在使用Request.Params[nameOfId]在表单提交获取控件id为nameOfId的值失败了,后改为name=nameOfId就好了。
但如果说是.net后台Session传值调用Id应该是没问题的
总之作为关键字不管是java,C,C++,javascript变量名最好避开不然都不知道会发生什么。。。。
附:JavaScript方面刚了解。。。以上言论不足之处请见谅

剑栈风樯各苦辛,别时冰雪到时春
2015-05-26 11:14
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
var name = '[1,2]';
alert(name.length); // 5

楼主你的这个结果怎么可能

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2015-05-26 11:57
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 冰镇柠檬汁儿
var name = [1,2];
     document.write(typeof(name)+'<br/>name.length='+name.length+'<br/>');
        for(var key in name){
         document.write(name[key] + '<br/><br/>');
    }
显示结果:
string
name.length=3
1

,

2
   var na = [1,2];
     document.write(typeof(na)+'<br/>na.length='+na.length+'<br/>');
        for(var key in na){
         document.write(na[key] + '<br/><br/>');
    }
显示结果:
object
na.length=2
1

2

剑栈风樯各苦辛,别时冰雪到时春
2015-05-26 12:13
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
收藏
得分: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
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11772
专家分:43421
注 册:2006-5-13
收藏
得分:7 
4楼说得对,变量名尽量避开关键词。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-05-27 06:33
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
TO:jsRank

var name = [1,2];
alert(name.length);
这段代码你在什么地方写的,如果是全局作用域,那肯定有问题
似乎你忘记了window.name这个属性,是代表的当前页面的名称,作用是判断当前的Window,如一个页面里面有很多iframe,就可以用
window.name:当前window的名称
window.parent.name:父window的名称
widnow.top.name:顶层window的名称

如果写在局部作用域中就不会有你说的问题了

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2015-05-27 10:05
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
收藏
得分: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
快速回复:数组长度
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016403 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved