Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以用一个参数调用array.splice()吗?_Javascript - Fatal编程技术网

Javascript 可以用一个参数调用array.splice()吗?

Javascript 可以用一个参数调用array.splice()吗?,javascript,Javascript,,我认为,array.splice可以接受1个参数: 如果没有指定多少参数 (上面的第二个语法是 SpiderMonkey扩展),所有元素 删除索引之后 但单参数选项是否是SpiderMonkey扩展尚不清楚(只有一个语法示例,令人困惑) 它可以在Chrome和Firefox中使用,但我不知道除此之外还有什么兼容性。有人确切知道吗?根据的15.4.4.12,唯一提到的原型是: Array.prototype.splice(开始,删除计数[,项目1[,项目2[,…]) 因此,不,在我的阅读中,第二

,我认为,array.splice可以接受1个参数:

如果没有指定多少参数 (上面的第二个语法是 SpiderMonkey扩展),所有元素 删除索引之后

但单参数选项是否是SpiderMonkey扩展尚不清楚(只有一个语法示例,令人困惑)


它可以在Chrome和Firefox中使用,但我不知道除此之外还有什么兼容性。有人确切知道吗?

根据的
15.4.4.12
,唯一提到的原型是:

Array.prototype.splice(开始,删除计数[,项目1[,项目2[,…])


因此,不,在我的阅读中,第二个参数不是可选的。

根据规范,至少需要两个参数

只使用一个参数调用的功能是对规范的SpiderMonkey扩展。Chrome完全可能实现了类似的扩展。看起来IE9、Opera和Safari(刚刚在这些系统中进行了测试)也是如此


也许是时候改变规格了……

很有趣。遗憾的是,我没有这本书,而且gbooks也不允许我访问该链接(页面不可用),搜索功能显示的快速摘录也有点枯燥。。但是,如果您要求ECMAscript标准一致性,那么SpiderMonkey在这里不一致(除了我在标准文档中对splice()算法的冗长描述中遗漏了一些内容)。是否可能只使用一个参数是DOM级别0(ECMA之前)因此,出于对历史先例的尊重,在许多环境中都是以这种方式实现的?感谢您在其他浏览器中进行的测试,找不到thoseI的更多信息。我应该注意,到目前为止,规范at有0或1参数调用的特定案例,1参数案例设置actualDeleteCount为“len–actualStart”,这是观察到的浏览器行为。