没有第二个参数的 Splice 表现如预期:
['a','b','c'].splice(0) // Returns ['a','b','c']
Run Code Online (Sandbox Code Playgroud)
但是带有未定义第二个参数的 Splice 表现不同:
['a','b','c'].splice(0, undefined) // Returns []
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释其中的区别吗?我希望得到相同的(第一个)结果。
它表明在内部, splice 正在使用“arguments.length”或类似的东西来改变它的行为,而不是检查参数。