Javascript 为什么在这行代码中使用分组运算符?
我正在浏览Javascript 为什么在这行代码中使用分组运算符?,javascript,express,Javascript,Express,我正在浏览express sessionnpm包源代码,并运行以下代码行: // get the session ID from the cookie var cookieId = (req.sessionID = getcookie(req, name, secrets)); 这不是和这条线一样吗 // get the session ID from the cookie var cookieId = req.sessionID = getcookie(req, name, secrets)
express session
npm包源代码,并运行以下代码行:
// get the session ID from the cookie
var cookieId = (req.sessionID = getcookie(req, name, secrets));
这不是和这条线一样吗
// get the session ID from the cookie
var cookieId = req.sessionID = getcookie(req, name, secrets);
他们为什么要这样做?这是某种代码风格的决定还是我错过了什么?谢谢。当你在
=
表达式周围不加括号时,一些过滤机会发出警告,因为人们通常在想要键入=
时键入=
。表达式周围的括号告诉linter这是一个有意的决定。否则,这两行在语义上是等价的。似乎是风格上的选择,特别是因为它清楚地表明单个=
是故意的,而不是=
或=
foo=bar=5;
faz=(baz=5);
log({foo,bar});
log({faz,baz})代码>在这个代码库中似乎不是这样,因为它们也有类似的东西:exports=module.exports=session
@Noob可能是代码的作者错过了那一行,或者作者没有使用过梁,只是认为在处理函数时需要()
。。。实际上,唯一知道他们为什么在一个地方使用()
,而在另一个地方不使用的人是代码的作者:p@JaromandaX谢谢,只是想确保我没有误解任何事情。这是正确的。赋值总是从右向左计算的,这里的括号只对linting产生影响,而不是执行。