Ecmascript 6 ES6如果处于箭头功能中

Ecmascript 6 ES6如果处于箭头功能中,ecmascript-6,Ecmascript 6,为什么 $(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click')); 不起作用?我得到SyntaxerError:如果 $(输入).on('keypress',e=>{if(e.which==13)$(btn).trigger('click');})工作正常第一种语法 $(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('cli

为什么

$(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click'));
不起作用?我得到SyntaxerError:如果

$(输入).on('keypress',e=>{if(e.which==13)$(btn).trigger('click');})工作正常

第一种语法

$(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click'));
相当于

$(input).on('keypress', function (e) {
    return if (e.which == 13) $(btn).trigger('click')
    ^^^^^^
});
由于这是无效语法,将引发错误

而第二个代码是语法

$(input).on('keypress', e => {
    if (e.which == 13) $(btn).trigger('click');
});
是正确的,因此它是有效的

当函数体包含多个语句时,我建议不要使用箭头函数语法。

第一种语法

$(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click'));
相当于

$(input).on('keypress', function (e) {
    return if (e.which == 13) $(btn).trigger('click')
    ^^^^^^
});
由于这是无效语法,将引发错误

而第二个代码是语法

$(input).on('keypress', e => {
    if (e.which == 13) $(btn).trigger('click');
});
是正确的,因此它是有效的


当函数体包含多个语句时,我建议不要使用箭头函数语法。

您可以使用逻辑and作为if条件的简写

$(input).on('keypress', e => (e.which == 13) && $(btn).trigger('click'));

您可以使用逻辑and作为if条件的简写

$(input).on('keypress', e => (e.which == 13) && $(btn).trigger('click'));

请注意,来自jQuery事件处理程序的
return
ing
false
具有特殊的语义。我认为它们在这里不受欢迎。请注意,来自jQuery事件处理程序的
return
ing
false
具有特殊的语义。我认为他们在这里不会受到感激。