【问题标题】:What is the order of operations inside a return statement when having several methods?当有多个方法时,return 语句中的操作顺序是什么?
【发布时间】:2019-11-11 20:03:29
【问题描述】:

以下语句中的操作顺序是什么?

... return array.map(some funct).join().sort()

是从右到左还是从左到右? 或者取决于语句中存在的函数类型,这意味着每个案例都是唯一的。如果是这样,显示方法的一个好的经验法则是什么:哪个先出现,然后再出现等等?

谢谢

【问题讨论】:

  • . 运算符链是从左到右计算的。绝对不是这种情况(鉴于这个简单的例子)任何事情都取决于所涉及的功能。
  • 要评估的最后一件事是.sort(),这将引发错误顺便说一句,因为字符串(从join 返回的字符串)没有名为sort 的方法
  • 我明白了...感谢您的澄清。我已经对这种方式感到困惑太久了......

标签: javascript arrays methods operator-precedence


【解决方案1】:

属性访问运算符具有从左到右的关联性:

array.map(func).sort().join()

相同
(((array).map(func)).sort()).join()

反过来说真的没有意义,你甚至无法以语法上有效的方式对其进行分组。

关于求值的顺序,在javascript中总是从左到右。在方法调用的情况下,无论如何只有一个合理的顺序:评估对象,然后访问属性并将其评估为函数值,调用该函数。

【讨论】:

    【解决方案2】:

    从左到右是js中默认的顺序。

    此外,还有一些 js 库可以让您使用辅助函数从右到左链接函数。

    【讨论】:

      猜你喜欢
      • 2022-11-29
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 2013-11-23
      • 2011-11-15
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多