Javascript 逗号“,”引发的血案
作者:grace 来源:gracecode.com 时间:2008-08-20 18:37:00
为了更好的说明问题,首先引出下面的题目
//请说明下面变量 a-d 的值 var a = [[1][1]]; var b = [['a','b','c'][1]]; var c = [['a','b','c'][1], ['a','b','c']]; var d = [['a','b','c']['length'], ['a','b','c']]; var e = [['a','b','c']['father', 'child', '0'], ['a','b','c']];
首先理解表达式
var a = [[1][1]];
的含义。我们可以将这个语句拆分下
var tmp = [1]; var a = [tmp[1]];
就能非常好的理解,实际上 a 中的数组元素取得是 tmp[1] ,它并没有定义,所以值为 undefined 。那么
var b = [['a','b','c'][1]];
就很容易理解为 ['b'] ,因为数组紧跟的后面是下标表达式。同时,数组也是个对象,它有相应的属性值,并且可以使用关联数组表示,于是
['a','b','c']['length']
的含义就是
var tmp = ['a','b','c']; console.info(tmp.length);
取的是 ['a','b','c'] 的长度,所以是 3 。而
['a','b','c']['father', 'child', '0']
后面的 ['father', 'child', '0'] 实质上是表达式,而不是数组。所以简化以后就是
['a','b','c']['0']
那么返回的就是 ['a'] 。这就让我们需要在实际的编码过程中,需要注意数组中的逗号“,”是否已经正确的加上,否则就会得到非期望的结果。
标签:逗号,数组,javascript
0
投稿
猜你喜欢
讲解SQL Server安装sp4补丁报错的解决方法
2009-04-11 17:39:00
关于搜索建议的两点小问题
2011-09-16 20:15:29
XML to DDL的项目关键:与数据库同步
2008-05-29 14:19:00
css hack简易的“独享”与“交集”
2008-08-31 20:17:00
“验证码”等于“流氓软件”
2007-10-19 18:29:00
asp如何遍历目录及目录下的文件?
2009-11-11 17:55:00
asp 实现的冒泡排序程序
2011-03-25 11:13:00
一个20行左右的强$代码
2009-12-25 15:22:00
thinkphp(php)插件钩子(hooks)分析的简单实现机制
2023-05-25 09:27:58
ASP Access实现网站计数器(访问量)
2011-04-10 10:33:00
firefox 2正则表达式
2008-08-25 19:15:00
JavaScript 组件之旅(四):测试 JavaScript 组件
2009-10-13 20:32:00
合并SQL脚本文件的方法分享
2011-09-30 11:13:03
Web开发技术发展史话
2011-04-25 19:16:00
ASP格式化日期的函数(输出13种样式)
2011-07-12 20:22:00
IE下文本被折行的解决方案
2009-06-28 16:13:00
Access数据库下如何使用通用对话框的问题
2008-11-28 16:37:00
如何利用触发器实现两个数据库间的同步
2009-01-06 11:26:00
关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
2012-08-21 10:22:21
ASP网站Server object error的解决办法
2008-11-07 15:57:00