相关疑难解决方法(0)

是...... foo是运算符还是语法?

我听说...两者都称为"传播语法 "和"传播运算符 ",后者更受欢迎.相关MDN文档的URL 表明它最初被称为扩展运算符,但后来改为扩展语法,MDN的运算符列表没有提到它.

Google似乎认为术语运营商更受欢迎并被接受,其中包括Microsoft文档es6-features.org等网站.

哪个术语在ECMAScript的上下文中最正确,如果有的话,为什么?数组解构赋值怎么样?

javascript language-lawyer ecmascript-6 spread-syntax

30
推荐指数
2
解决办法
1843
查看次数

javascript - Array和类似Array的对象之间的区别

我在javascript中经常遇到"Array-Like Object"这个术语.它是什么 ?它和普通阵列有什么区别?什么是类似数组的对象和普通对象之间的区别?

javascript arrays

26
推荐指数
2
解决办法
8984
查看次数

为什么 map 会改变对象数组?

可能是一个愚蠢的问题,但为什么 map mutate 对象数组。

var obj = {
  items: [{
    value: 1,
    selected: true
  }, {
    value: 2,
    selected: false
  }]
};

var items = obj.items.map(i => {
  if (i.value === 2) i.selected = true;
  return i;
});

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
2034
查看次数

对象解构在 Promise 中解决和拒绝

对象解构不是我最喜欢的东西,我经常尽量避免使用它。但是,在这种特殊情况下,我很好奇而无法忽视正在发生的事情。

现在我们可以这样做;

var o = {},
    x = 1,
    y = 2;
o = {x,y};
console.log(o); // <- {x: 1, y: 2}
Run Code Online (Sandbox Code Playgroud)

一切都很好;

不过,我的情况有点复杂;

var p = function(o){
          o.promise = new Promise((resolve,reject) => o = {resolve,reject});
          console.log(o)  // -< {resolve: ƒ, reject: ƒ}
          return o;
        }({});
console.log(p);           // -< {resolve: ƒ, reject: ƒ}
Run Code Online (Sandbox Code Playgroud)

..的promise财产在p哪里?所以我用经典的方式来做;

var q = function(o){
          o.promise = new Promise((resolve,reject) => ( o.resolve = resolve
                                                      , o.reject  = reject
                                                      ));
          console.log(o)  // <- {promise: …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring promise

2
推荐指数
1
解决办法
113
查看次数