-
2009-09-23
一个手误引起的发现--splice的第二个参数的默认值 - [javascript]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.my1px.cn/logs/47017944.html
今天写代码居然把数组的slice方法写成splice了,我晕。但更晕的是,在firefox v3.5下面居然是正确的,而IE则不认帐...
function a(b,c,d,e){
return ([].splice.call(arguments,2))
}alert(a(1,2,3,4))
因为ff的表现,我百思不得其解,这问题到底出哪了?难道浏览器会对splice的方法表现不一样?
拿出手册查找一下,方才发觉是我打错字了,把slice误打成splice了。
slice有两个参数,第一必选项,第二个可选项。 return ([].slice.call(arguments,2)),返回[3,4]
但ff在splice方法上表现可是比较特别,主要是
deleteCount参数的默认值上不一样。splice在IE下默认为0,而firefox则默认是从起始位置到end的长度(因此返回结果和slice一样,slice的第二个参数默认的结束位置也是end)。
收藏到:Del.icio.us







