相关疑难解决方法(0)

Javascript对象属性是按顺序分配的吗?

假设我有一个对象根据函数的返回值分配属性:

var i = 0;

var f = function() { return ++i; }

var foo = {
            a:f(),
            b:f(),
            c:f()
          };
Run Code Online (Sandbox Code Playgroud)

是否保证foo.a为1,foo.b为2,foo.c为3?我知道当你迭代一个对象时JS不保证顺序,那么赋值呢?

它是在JS规范中指定的吗?我只是出于教育原因.

谢谢.

javascript

17
推荐指数
1
解决办法
1016
查看次数

Javascript对象初始化和评估顺序

如果我写

var a = [1,2];
var b = {
  foo: a.pop(),
  bar: a.pop()
};
Run Code Online (Sandbox Code Playgroud)

b根据规格,价值是多少?

(通过实验,它是{foo: 2, bar: 1},但我担心这是否是特定于实现的.)

javascript semantics

9
推荐指数
1
解决办法
846
查看次数

标签 统计

javascript ×2

semantics ×1