为什么coffeescript使用«返回& # 187;声明中无处不在
Why coffeescript use « return » statement everywhere?
当写这样的东西时:
$(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
语句更安全,更简单,并且没有任何负面后果。如果你不关心函数返回什么,你可以忽略返回的值。
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 直接在函数声明上使用function.prototype.bind
- 获取HTML属性中CSS声明的值
- 对API数据使用声明性绑定
- 可以Resharper在我的javascript函数声明中添加分号
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 使用同一对象中的其他变量声明变量
- 如何在AngularJS工厂中正确声明对象属性
- 用||声明变量
- 其中的用例标签'的声明
- 如何将变量声明为全局变量
- 调用函数中声明的变量
- 一个'var'在函数内部声明
- 我应该如何声明我的自调用函数
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 函数声明与函数表达式之间的性能差异
- 为什么coffeescript使用«返回& # 187;声明中无处不在