始终返回语句/值是JavaScript的良好做法
Is JavaScript good practice to always return statement/value?
我已经开始学习和使用CoffeeScript好几天了,我正在使用以下Coffee-to-JavaScript和JavaScript-to-Coffee转换器,因为我是CoffeeSScript语法的新手。
上面的转换器完美地将JavaScript"翻译"为CoffeScript语法,但我最近需要做相反的事情。因此,我在CoffeeScript到JavaScript转换器功能中传递了以下代码:
$(document).ready ->
$('.b-date-picker').datepicker
onSelect: (date) ->
if $(this).attr('name').indexOf('gteq') > 0
$(this).parent().next().find('input').datepicker 'option', 'minDate', date
else
$(this).parent().prev().find('input').datepicker 'option', 'maxDate', date
结果JavaScript与我最初为获得CoffeScript语法而传递的结果相同,只是几乎每一行都有一个return语句:
$(document).ready(function() {
return $('.b-date-picker').datepicker({
onSelect: function(date) {
if ($(this).attr('name').indexOf('gteq') > 0) {
return $(this).parent().next().find('input').datepicker('option', 'minDate', date);
} else {
return $(this).parent().prev().find('input').datepicker('option', 'maxDate', date);
}
}
});
});
因此,我开始怀疑为什么要放置这些返回。这是否也是转换器中设置的正确JavaScript语法,或者可能有某种优化/性能改进?
CoffeeScript使用"函数语法",因为偶数语句充当表达式。生成的代码是如何在JS中模拟的(实际上,return ?:
会更精确,但这是一个更简单的转换)。
现在,考虑一下这个CoffeeScript:
() ->
if cond
a()
undefined
else
b()
undefined
在这种情况下,每个分支映射到每个转换器的return void 0
(读作:return undefined
)。一个更智能的转换器可以安全地消除这样的返回语句(也就是说,不需要任何JS返回语句来产生等效的结果),但在该工具中没有做到这一点。
如果没有这样一个未定义的值作为最后一个计算的表达式,CoffeeScript就无法知道表达式的未定义结果是否实际使用了,并且必须假设使用了函数的结果,这就是它为每个可能的分支添加返回语句的原因。
然而,在一种没有"函数语法"(比如函数表达式除外)的语言(JS)中,我认为在需要时最好有一个显式返回;这显示了意图。
您不必从JavaScript函数返回值。
转换器可能是高度智能的,并且可能已经看到内部方法调用(对jQuery)返回一个值(它返回jQuery对象),并且该值在其他方面是未使用的,或者它可能过于简化或正在实现特定的实践。
- 将javascript值传递给php是正确的方法
- 什么是'值是引用'表示JavaScript对象
- 如何获取Session值,该值是JavaScript中的一个数组
- 在JavaScript中,函数的默认值是多少'的原型属性
- JavaScript代码是下一行的起始值
- 从函数返回的值是未定义的JavaScript
- Javascript - 确定数组中的值是正数还是负数(使用开关)
- 在不同系统上的Javascript中初始化的数组的初始值是多少?
- Web服务返回给javascript的值是未定义的
- 如何确保输入的值是 JavaScript 中的数字而不是字符串
- 比较不同类型的 JavaScript 值(不是字符串)
- Javascript:执行 onchange 函数时选择的值是什么
- Javascript - 具有键值对的对象,其中值是一个数组
- JavaScript中被忽略的参数的值是多少
- 如何设置表单中文本字段的初始值?此值是从 JavaScript 函数生成的.如何在没有 botton 的情况下定义事件
- 如何将 JavaScript 值插入 SQL 数据库 这是一个 Microsoft 数据库
- Javascript 自动选择多个如果值是数组
- 为什么typeof !function(){}在JavaScript中是布尔值
- 如何获取php到javascript变量的值是可能的
- Javascript值是true,而它应该是false