gpt4 book ai didi

javascript - 这个 IE array.push 错误有合理的理由吗?

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

注意:编辑示例以反射(reflect)我的实际问题,这是数组初始化中的尾随逗号。

似乎混合使用原始数组初始化和 array.push 会导致索引变得异常。

我这样做:

var iFeelLikeIt = true;
var items = ["thing1", "thing2",];
if (iFeelLikeIt) {
items.push("thing3");
}
items.push("thing4");

在 IE7 中,(没有检查 6 或 8),我的数组看起来像:

  • 事情1
  • 事情2
  • 未定义
  • 第三件事
  • 事情4

实际上,它看起来更像是一个按数字键控的字典,键为 0、1、3、4。

我已将我的代码更改为仅初始化一个空数组并根据需要将所有内容推送到其中,并且它的行为很正常。但是想知道是否有人知道这种行为的正当理由?或者至少闻起来像出于正当理由的站不住脚的借口。

最佳答案

首先,如果我运行您的示例,它会显示 thing1 未定义的错误。我猜你想把它做成字符串?然后,如果我尝试这样做,iFeelLikeIt 也会抛出错误,因为它是未定义的。

我假设您在代码中这样写:

var items = ["thing1", "thing2",];

检查数组末尾的最后一个逗号。 IE 将其解释为新的未定义值,它将创建具有下一个值的数组:

thing1、thing2 和未定义的值。

仅此而已。

关于javascript - 这个 IE array.push 错误有合理的理由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003331/

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