一行中有多个语句的箭头功能

问题描述

最近我发现一个简单的箭头功能,例如此地图中的回调

[1,2,3,4,5,6].map(item => {
    console.log(item) // or anything else
    return item - 1;
})

我可以像这样重写一行命令

[1,6].map(item => (console.log(item),item - 1))

我可以使用我想用,划分的尽可能多的语句,最后一个参数将始终是返回值。对我来说似乎很酷,但是在箭头函数文档中找不到有关此语法的任何信息。谁能解释这种语法,或者只是指向我找到文档的地方?

解决方法

从本质上讲,它使您可以在一条语句中执行多项操作。它通常用于for循环,并在单个语句中分配多个变量,例如:var a = 1,b = 2;

尽管可以运行,但这并不意味着它是一个好主意。这样会使您的代码可读性更差,更难以调试。

请参阅the Comma Operator上的MDN文档。

逗号运算符(,)评估其每个操作数(从左到右)并返回最后一个操作数的值。这使您可以创建一个复合表达式,在该复合表达式中评估多个表达式,并且该复合表达式的最终值是其最右边成员表达式的值。通常用于为for循环提供多个参数。

,

您正在使用逗号运算符来评估多个表达式: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator