gpt4 book ai didi

javascript - [1,2,3].slice(1,undefined) 的值应该是多少?

转载 作者:搜寻专家 更新时间:2023-11-01 04:47:45 25 4
gpt4 key购买 nike

我发现处理上的差异

[1,2,3].slice(1, undefined)

介于 chrome(返回 [2,3])和 firefox(返回 [])之间。

当然,双方都同意 [2, 3] 作为

的值
[1,2,3].slice(1)

并且他们都同意[]作为

的值
[1,2,3].slice(1, null)

这两个哪个是正确的?还是标准中没有明确规定?

最佳答案

The specification says:

7. If end is undefined, let relativeEnd be len; else let relativeEnd be ToInteger(end).

您使用的是哪个版本的 Firefox? Firefox 5 正确地给出了 [2, 3]更新:Firefox 3.6 确实返回了一个空数组。

我不知道这里出了什么问题,因为如果你调用 slice() 而没有第二个参数,end 将是 undefined也是。

更新:

玩了一会儿之后,如果传递给 .slice() 的第二个参数是 NaN,似乎会返回一个空数组。示例(+undefined 返回 NaN):

> [1,2,3].slice(1, +undefined)
> []

这在 Firefox 和 Chrome 中是一样的。

不幸的是,这也不符合规范,因为ToInteger(NaN) [spec]应该返回 0,所以数组实际上应该被切片到最后。

我不是说这是在某些Firefox版本中不能正常工作的原因,我不知道实现。

轻微迷失方向的事件......没关系。

关于javascript - [1,2,3].slice(1,undefined) 的值应该是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6968315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com