Почему оператор группировки используется в этой строке кода?

#javascript #express

#javascript #выразить

Вопрос:

Я просматривал 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);
  

Зачем им это делать? Это какое-то решение в стиле кода или что я упускаю? Спасибо.

Ответ №1:

Некоторые ссылки предупреждают, когда вы не заключаете = выражение в круглые скобки, из-за того, что люди обычно вводят = , когда они хотят ввести == . Круглые скобки вокруг выражения говорят компоновщику, что это преднамеренное решение. В противном случае две строки семантически эквивалентны.

Комментарии:

1. похоже, это не относится к этой базе кода, потому что у них тоже есть что-то подобное: exports = module.exports = session;

2. @Noob возможно, автор кода пропустил эту строку, или, возможно, автор не использует линтер и просто думает, что вам нужен () при работе с функцией… действительно, единственный человек, который мог бы знать, почему они используют () в одном месте, но не в другом, — это автор кода: p

3. @JaromandaX спасибо, просто хотел убедиться, что я ничего не понял неправильно.

4. Это правильно. Назначения всегда вычисляются справа налево, круглые скобки здесь имеют значение только для компоновки, а не для выполнения.

Ответ №2:

Кажется, это стилистический выбор, тем более что он дает понять, что сингл = является преднамеренным, а не опечаткой для == или ===

 foo = bar = 5;
faz = (baz = 5);

console.log({foo, bar});
console.log({faz, baz});