js中发现了一个有趣但可能有用的东西,它与逗号运算符有关。
我们主要使用逗号分隔对象或数组项中的属性。
然而,我从来没有注意过它在表达式中的用法。
例如:
('a', 'b')
这两个表达式(在本例中是字符串)都被计算,这将返回最后一个元素,即最后一个逗号之后的表达式。在本例中,它返回“b”。
可以将值赋给变量,如下所示:
const letter = ('a', 'b')
letter === 'b' //true
如果只是用简单值,这几乎没有任何意义。
不过当我们可以运行任何表达式,包括函数调用,而不是计算“a”字符串,这将非常实用。
思考下面的代码:
const doStart = () => {console.log(started)}
let started = false
const start = (
started = true,
doStart
)
现在start是对doStart()函数的引用,但是当您调用start()时,started变量为true:
start() // true
你甚至还可以使用两个以上的表达式:
const start = (
started = true,
stopped = false,
doStart
)
这个“技巧”可以用来修饰一个你无法控制的函数,但是为了简单起见,最好还是创建一个新函数。