#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 возможно, автор кода пропустил эту строку, или, возможно, автор не использует линтер и просто думает, что вам нужен
()
при работе с функцией… действительно, единственный человек, который мог бы знать, почему они используют()
в одном месте, но не в другом, — это автор кода: p3. @JaromandaX спасибо, просто хотел убедиться, что я ничего не понял неправильно.
4. Это правильно. Назначения всегда вычисляются справа налево, круглые скобки здесь имеют значение только для компоновки, а не для выполнения.
Ответ №2:
Кажется, это стилистический выбор, тем более что он дает понять, что сингл =
является преднамеренным, а не опечаткой для ==
или ===
foo = bar = 5;
faz = (baz = 5);
console.log({foo, bar});
console.log({faz, baz});