为什么coffeescript使用«返回& # 187;声明中无处不在

Why coffeescript use « return » statement everywhere?

本文关键字:声明 无处不在 返回 coffeescript #171 为什么 使用      更新时间:2023-09-26

当写这样的东西时:

$(document).ready ->
  doSomething()
doSomething = ->
  alert('Nothing to do')

被编译成

$(document).ready(function() {
  return doSomething();
});
doSomething = function() {
  return alert('Nothing to do');
};

在我的理解,返回语句是为值(字符串,数组,整数…)

为什么coffeescript会这样做?

如果没有指定,CoffeeScript使用隐式返回。

CS返回函数中最后一条语句的值。这意味着生成的JS将具有最后一条语句的值的return,因为JS需要显式的return

返回语句适用于值(字符串、数组、整型…)

是的,这些值可以通过调用函数返回,例如您示例中的doSomething()alert()

Coffeescript和Ruby一样,总是返回函数中的最后一条语句。最后一条语句将始终计算为一个值(字符串、数组、整数等)或null。在任何一种情况下,返回结果都是完全有效的。

要回答"为什么"coffescript对所有函数都这样做,而不是只有那些有值的函数,这只是因为在许多情况下,Coffeescript无法判断最后一条语句何时将评估为值或null。总是在那里使用return语句更安全,更简单,并且没有任何负面后果。如果你不关心函数返回什么,你可以忽略返回的值。