• 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