javascript:eval在IE和firefox中的不同

本文探讨了使用eval解析带多余逗号的JSON字符串时,不同浏览器(IE6、Chrome、Firefox)对于数组长度解析的差异,并解释了原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值