You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Array Literals何时创建?MDN相关描述疑问解答

JavaScript数组字面量的创建时机解析

顶级脚本中的数组字面量

顶级脚本(比如直接在<script>标签、模块顶层的代码)里的数组字面量,每次包含它的表达式被执行计算时,都会创建一个全新的数组实例。

举个例子:

// 顶级环境代码
let lastArr;
for (let i = 0; i < 3; i++) {
  const currentArr = [1, 2, 3];
  // 每次循环的currentArr都是新对象,和上一次的不相等
  console.log(currentArr === lastArr); // 第一次输出undefined,后两次输出false
  lastArr = currentArr;
}

哪怕字面量的内容完全一样,只要执行到它所在的代码位置,就会重新生成数组。

函数中的数组字面量

如果数组字面量写在函数内部,每次调用这个函数时,都会创建一个新的数组实例。

示例代码:

function createArray() {
  return ["a", "b", "c"];
}

const arrA = createArray();
const arrB = createArray();
// arrA和arrB是两个独立的数组对象
console.log(arrA === arrB); // false

哪怕函数逻辑没有变化,每次调用都会重新解析字面量,生成新数组。

核心总结

数组字面量不是预先创建好的静态对象,它是在代码执行流到达它所在的位置时,才动态创建数组实例——顶级代码里每次执行到该表达式、函数里每次调用函数,都会触发一次新数组的创建。

内容的提问来源于stack exchange,提问作者Tarun Dhiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:20:40