技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

箭头函数=>不能换行?大括号{}这种情况下可以不要

作者:admin    时间:2022-5-9 14:30:24    浏览:

这几天学习了几天箭头函数,今天记录一下,箭头函数换行和花括号的问题,这是一些细节问题,但如果不注意,就可能导致错误出现。

参数定义和箭头之间的换行符

JavaScript 不允许在参数定义和箭头函数中的箭头 ( =>) 之间有换行符。

例如,以下代码会导致SyntaxError

let multiply = (x,y) 
=> x * y; 

输出:

Uncaught SyntaxError: Unexpected token '=>'

但是,以下代码可以正常工作:

let multiply = (x,y) => 
x * y;

JavaScript 允许在参数之间使用换行符,如下例所示:

let multiply = (
  x,
  y
) => 
x * y;

花括号{}这种情况下可以不要

在 JavaScript 中,表达式的计算结果如下例所示。

10 + 20;

语句执行特定任务,例如:

if (x === y) {
    console.log('x equals y');
}

如果在箭头函数的主体中使用表达式,则不需要使用花括号。

let square = x => x * x;

但是,如果使用语句,则必须将其包裹在一对花括号中,如下例所示:

let except = msg => {
    throw msg;
};

对象字面量应在括号中

以下示例:

let setColor = function (color) {
    return {value: color}
};

let backgroundColor = setColor('Red');
console.log(backgroundColor.value); // "Red"

setColor()函数表达式返回一个将属性value设置为color参数的对象。

如果使用以下语法从箭头函数返回对象字面量,则会出现错误。

p => {object:literal}

例如,以下代码会导致错误。

let setColor = color => {value: color };

由于块和对象字面量都使用大括号,JavaScript 引擎无法区分块和对象。

要解决此问题,需要将对象字面量括在括号中,如下所示:

let setColor = color => ({value: color });

总结

本文介绍了几个细节问题,箭头函数可以在某些部分换行,而花括号在某些情况下是可以不要的,括号的使用要适当,不然会导致错误。

相关文章

标签: 箭头函数  
x
  • 站长推荐
/* 左侧显示文章内容目录 */