const arr = [1, 2];
console.log(arr.push(arr.push(4), arr));
// 输出?

解

输出:3

  • arr.push(4) 会把 4 添加到 arr 末尾并返回数组新的长度 3;
  • 接着执行 arr.push(arr.push(4), arr),相当于 arr.push(3, arr),即把数字 3 和数组自身 arr 作为两个元素追加到末尾;
  • 最终数组变成 [1, 2, 4, 3, arr],对 arr 自身产生了循环引用,序列化时会形成环。