gpt4 book ai didi

JavaScript。数组元素初始化顺序

转载 作者:行者123 更新时间:2023-12-03 06:37:12 25 4
gpt4 key购买 nike

有一天,我看到了某种交换数组中元素的方法。像这样:

var arr = [1,2,3];
arr[0] = [arr[1], arr[1] = arr[0]][0];

显然,此方法假设临时数组 arr[1] 的第一个值将在第二个 arr[1] = arr[0] 之前计算。
否则两个值将相同。合成示例:

var x = 1;
var arr = [x, x += 1, x += 1];
arr; // [1,2,3] or [3,3,2] or maybe [3,2,3]?

是否可以保证 javascript 解释器不会以这种方式运行?

最佳答案

保证从左到右计算 JS 数组初始值设定项

ArrayAccumulation(ElementList : ElementList , Elision[opt] AssignmentExpression):

.1. Let postIndex be the result of performing ArrayAccumulation for ElementList with arguments array and nextIndex...

.4. Let initResult be the result of evaluating AssignmentExpression.

@ http://www.ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-arrayaccumulation

不过最好不要依赖它。

关于JavaScript。数组元素初始化顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38142742/

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