gpt4 book ai didi

javascript - javascript 中 var a = (expression1, expression2) 背后的原因是什么?

转载 作者:行者123 更新时间:2023-11-29 16:12:47 26 4
gpt4 key购买 nike

查看一些 JS 代码我发现了这样的东西:

var a, b;
if (
(a = someFunction1(), b = someFunction2() )
){
...
}

我以前从未发现过这样的事情,我不明白这样做的原因。所以我很好奇:这样做的人是疯了还是我根本无法理解他的想法。

当我尝试检查像 (expression1, expression2) 这样的构造时,我发现它总是返回第二个表达式的值:

(5, 6)   // 6
('strange', 'things') // 'things'
(4, undefined) // undefined

所以如果我是编写这段代码的人,我会这样做:

var a = someFunction1(),
b = someFunction2();

if (b){ ... }

我的推理正确吗?

最佳答案

When I try to check what construct like (expression1, expression2) does, I see that it always returns the value of the second expression

是的。即使不尝试,这就是 comma operator

Am I correct in my reasoning?

是的。您的代码执行完全相同的操作,但更具可读性。

关于javascript - javascript 中 var a = (expression1, expression2) 背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com