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