javascript - 拼接(0)与拼接(0,未定义)

标签 javascript arrays splice

没有第二个参数的拼接的行为符合预期:

['a','b','c'].splice(0)            // Returns ['a','b','c']

但是带有未定义的第二个参数的 Splice 的行为有所不同:

['a','b','c'].splice(0, undefined) // Returns []

有人可以向我解释一下其中的区别吗?我希望得到相同的(第一个)结果。

这表明 splice 在内部使用“arguments.length”或类似的内容来改变其行为,而不是检查参数。

最佳答案

It suggests that internally, splice is using "arguments.length" or similar

是的,正是 what happens internally .

如果只传递了一个参数,它将删除所有元素,直到结束。
如果传递了更多参数,它将采用第二个参数,将其转换为整数并将其用于要删除的元素的计数。当你经过undefined ,它被转换为数值 NaN ,得出整数 0 - 没有元素被删除。

关于javascript - 拼接(0)与拼接(0,未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48421239/

相关文章:

javascript - 数组包括 reurning false,即使数据中存在值

javascript - 如何使用 JavaScript 放大图像?

java - 如何在 Java 中将换行符添加到字节数组?

c++ - 数据拼接时输出成员变量c++

javascript - 将项目返回到数组中

javascript - 在媒体查询的帮助下按下按钮后,无法在导航栏中重新出现隐藏的 div

javascript - 了解 console.log(console.log(object))

arrays - 如何在远程 ssh bash 命令中迭代本地数组

java - 如何使用嵌套 for 循环来增加数组?

c++ - 拼接一个短整数的第一个和最后一个 3 位数字?