javascript:eval在IE和firefox中的不同

来源:互联网 发布:淘宝店铺的运营管理txt 编辑:程序博客网 时间:2024/05/18 03:55

用eval解析了一个json字符串,在ie和firefox中得到了不同的数组长度。

原因是字符串后面多写了个逗号:
var initbarr=[{bid:1,rs:"i"},{bid:2,rs:"i"},{bid:3,rs:"i"},{bid:4,rs:"i"},{bid:5,rs:"i"},{bid:6,rs:"i"},
{bid:11,rs:"i"},{bid:12,rs:"i"},{bid:13,rs:"i"},{bid:14,rs:"i"},{bid:15,rs:"i"},{bid:16,rs:"i"},
{bid:21,rs:"i"},{bid:22,rs:"i"},{bid:23,rs:"i"},{bid:24,rs:"i"},{bid:25,rs:"i"},{bid:26,rs:"i"},
{bid:31,rs:"i"},{bid:32,rs:"i"},{bid:33,rs:"d"},{bid:34,rs:"i"},{bid:35,rs:"s"},{bid:36,rs:"i"},
{bid:41,rs:"i"},{bid:42,rs:"i"},{bid:43,rs:"d"},{bid:44,rs:"i"},{bid:45,rs:"s"},{bid:46,rs:"i"},
];
ie6: eval(initbarr.length)=31
chrom,firefox: eval(initbarr.length)=30
可以看出ie6是通过逗号的个数来判断字符串长度的{,,}是定义了三个元素的数组。
去掉json中最后一个与元素的逗号,三个浏览器结果一样,都是30
原创粉丝点击