Я постараюсь сделать это кратким ...
При всей шумихе над ES6, я чувствую, что использование ключевого слова var
становится все более и более недовольным сообществом JS в целом. Из-за этого (предполагаемого) общего консенсуса я привык избегать использования var
вместо новых ключевых слов const
и let
для создания переменных.
Ниже приведен пример блока кода, который я написал, где я не мог использовать const
, потому что я хотел переопределить переменную. Я также использовал async / await
, поэтому весь код был в том же block-level scope
, что, очевидно, также не позволяет переопределять переменные let
. Поэтому мой единственный вариант - использовать var
(или создать еще одну переменную let
).
Вот код. Сохранение новой учетной записи пользователя в MongoDB через Mongoose ...
router.post('/signup', async (req, res, next) => {
const { email, password } = req.body;
const user = await userModel.findOne({ email });
if (user) { res.send('Email already in use.'); return; }
// here is where the issue occurs - use var instead?
let newUser = new userModel({ email, password });
let newUser = await newUser.save();
console.log(newUser); // just checking everything works
res.send({ message: 'New user account created!' });
});
MDN упоминает об этом поведении ... только с ОДНОЙ ОТПРАВЛЕНИЕЮ! Это не полезно. :( А потом они продолжают обсуждать поведение подъема, что не является моей проблемой, или, по крайней мере, я не вижу, как это связано. Источник MDN Здесь .
Итак, в заключение ...
Является ли это примером того, когда var
будет наиболее подходящим ключевым словом для использования?
Если это не время для использования var
, есть ли любой экземпляр, когда var
является наиболее подходящим ключевым словом для использования, даже в возрасте ES6 (7, 8 и т. Д.)
Отказ от ответственности: Я знаю, что мне совершенно не обязательно сохранять эти переменные, но, на мой взгляд, стоит компенсировать написание чуть более подробного кода, который также будет более читабельным и понятным. Я в порядке с использованием var
, я просто, хотя это был интересный случай.