Comments 9
усеян
var-ами так, будто на дворе 2003-й
Ну вы уж настолько то не драматизируйте :)
let/const появились в ES2015, писать с ними, в основном, стали через год-другой.
<starper mode> С учетом того, что const работает как const только с примитивами, а let нужен довольно редко - не такое уж большое улучшение по сравнению с var. </starper mode>
Про const вы ошибаетесь, впрочем это обычно в js, он работает одинаково на всех. И направление не на тип(примитивы и без const иммутабельны), а на переменную которой присвоенно значение. Сама переменная будет константой и для числа и для объекта. Но вот число - number, иммутабельно и менять его не можем, а объект можем. При этом сама переменная const содержащая объект не сможет меняться и присвоить ей другой напрямую не выйдет, условная ссылка будет так же.
Я согласен что этот момент многих путает, но если периодически освежать в голове базу по js то все будет логично(ну с тчк зрения js конечно же)
Перевод очень поверхностной статьи, автор которой или не умеет пользоваться по назначению инструментами языка на котором работает, или просто неопытный разработчик.
Var прекрасен. А вот let ущербный так как нельзя объявить дважды
Зачем объявлять одну и ту же переменную дважды?
почему нет? визуально красиво, копипаст удобно, вот в таких местах var [error, resultA] = await ...;\n var [error, resultB] = await ...; с let только отдельно объявлять , в блоке try catch c let только заранее объявлять.
а теперь вы объясните зачем запрещать объявлять дважды?
Я часто использую JS, но сам он не мой родной язык немного. Пишу на Go в основном, и если проводить аналогию, то в Go есть только let. И ничего, живём без возможности объявить одну переменную дважды, никого это не напрягает от слова совсем.
На вашем примере, если error у нас объявлена уже, то мы можем объявить resultB, а затем сразу сделать только операцию присваивания (вместо объявления и присваивания)
Не знаю насколько уместное получилось сравнение, тк языки разные, возможности разные, и подходы к написанию кода вероятно тоже. Но я пишу на JS только для своих бытовых нужд, и в основном я не встречаю никаких трудностей, когда переношу опыт с одного языка на другой
Ещё бы заглянуть в бандлы, собранные с target: es2015 и ниже, тогда у автора инфаркт будет)
Зоны временной недоступности, или почему исходный код TypeScript усеян var-ами