哎呀妈呀,这ES6语法,害我想了大半个钟头!
发布于 2 年前 作者 baofengyv 2973 次浏览 来自 分享

TIM截图20180118150428.png

来自这里

看到这个直接懵了,这是啥。。。。。

用babel处理了下才算能明白 TIM图片20180118143855.png

15 回复

@waitingsong 估计是忽略了return,才搞混的

说明语法过于简洁,也会影响阅读

个人感觉:ES6的语法糖有些多,造成代码的可读性有些…当然:语法糖很具有两面性。

这种只能说是自己作,就跟当年的 ++i++ 一样。 不该简写的地方没必要简写。 其实很简单的:

const times = x => (
  f => {
    // ...
  }
)

const times = x => {
  return f => {
    // ...
  }
}

const times = function(x) {
  return function (f) {
    // ...
  }
}

@atian25 哪里能找到你们1.27北京专场的信息?

@atian25 说得好。这种写法在我看来是用简洁的写法故意制造混乱

@alsotang

哈哈,我之前也作过,当时 Egg 的 Controller 还是这种写法时:

module.exports = function(app) {
  class HomeController extends app.Controller {
    // ...
  };
  return HomeController;
};

尝试转换:

// 第一次简化(这样其实是最佳的)
module.exports = app => {
  class HomeController extends app.Controller {
    // ...
  };
  return HomeController;
};

// 第二次简化,因为嫌弃 return 麻烦
module.exports = app => class HomeController extends app.Controller {
  // ...
};

// 第三次简化,因为觉得第一行太长,改成这样,但这个括号。。。最后还是第一种好
module.exports = app => (
  class HomeController extends app.Controller {
    // ...
  }
);

@atian25 我也讨厌这种写法,净搞这些花里胡哨的,我反手就是一波举报

@nnliang 北京招聘专场?问狼叔看看

这不符合函数式编程规范, 它依赖了外部变量times ,改成下面这样就更好理解了

const times=x=>f=>{
  while(x>0){
    f()
    x--
  }
}

@atian25 其实吧。。。我一直喜欢古老的 function 这种写法。。。箭头函数那种我写的时候还要去思考单行跨行的问题和是否需要return的问题。虽然字少,反而卡壳。

确实太过简洁,也影响阅读,我刚开始接触es6这种写法,也是一脸懵逼

回到顶部