Уже достаточно давно начало считаться, что var - это что-то устаревшее, и везде используются let (и const, само собой).
Но почему так сильно уходить от var? Это ж штука чисто js-a. И работает она хорошо.
Да у let/var есть отличия. Но они не являются преимуществами/недостатками let или var.
Недавно смотрел документацию typescript. Даже там рекомендуют использовать let вместо var, но после этого просто приводят различия между ними. Но опять - я не считаю, что различия - это недостатки. Разве можно сказать, что var хуже потому что имеет область видимости в виде функции и в циклах с таймерами ее использовать не удобно? Тогда и const уже let, так как ее не удобно использоваться для переменных, которые нужно менять...
Я имею в виду, что var - это var, let - это let, const - это const. У всех их есть плюсы, и есть минусы. Но все они хороший. А если они хорошие зачем от чего-то отказываться?
- - - -
Что вы предпочитаете использовать?
Когда вы используете let/const/var?
Если еще какие-то причины использовать let вместо let?
newaitix,
Microsoft Internet Explorer 3.22% - из статистики использования браузеров в рунете в 2018 году.
Я не знаю никого кто его использует.
Но все же сейчас 2018 год.
Не знаю, но как по мне если человек знает про let/const, то по идеи он должен знать и о gulp/webpack и прочих штуках.
И поэтому думать, что это уменьшает аудиторию - это очень странно. Оно в любом случае будет конвертироваться в es5.
Да и "ie никогда не будит поддерживать let" - то же сомнительно. Хоть и не важно.
Supported in the Internet Explorer 11 standards document mode. Also supported in Store apps (Windows 8.1 and Windows Phone 8.1).
Not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards, Internet Explorer 9 standards, Internet Explorer 10 standards. Not supported in Windows 8.
Отказ от var современном модульном коде обусловлен тем, что использование только const и let, const для переменных которые не переопределяются и let для переменных которые переопределяются повышает читаемость кода и снижает когнитивную нагрузку с программиста, читающего код.
Такой код воспринимается легче и быстрей.
Так же в современном модульном коде нет ни одного объективного кейса для предпочтения var вместо const/let.
lega, сразу видно, что во фронтенд разработке вы недавно. Как я писал выше, раньше этим приемом подключали модули в SPA. Сейчас же в подобных приемах нет необходимости.
Это тенденция. Берем самобытный язык и делаем из него java. Это позволяет программистам мигрировать из языка в язык без особых глюков в мозгах. Расчищается дорога индусам...
На синтаксис JavaScript еще при его создании повлияли C и Java.
С-подобный синтаксис, пожалуй, единственное сходство между Java и JavaScript.
Это позволяет программистам мигрировать из языка в язык без особых глюков в мозгах.
Мигрировать с JavaScript на Java не так-то просто. Тут надо хорошо понимать концепции объектно-ориентированного программирования, так как код в Java пишется только в рамках классов.
Антон Спирин, в каком месте в С и Java есть прототипное наследование? :) Это - глюк в мозгах и сейчас в ES6 от прототипного наследования мягко уходят в классическое. Область видимости у var не похожа ни на один язык. Сейчас его заменяют на let. Не говоря уж о замыканиях, с которыми приходится основательно напрягаться поначалу, хотя бы чтобы начать понимать как оно вообще работает. Странности JS при работе с this в замыканиях причесывают стрелочными функциями. Хотя, хочется думать, что сама идея использовать замыкания в других языках, развилась именно благодаря удачному применению замыканий в Javascript.
Я лишь написал, что ваши утверждение:
Берем самобытный язык и делаем из него java.
мягко говоря, не пересекается с реальным положением вещей.
А я написал, что самобытные фенечки Javascript, которые выбиваются из "тренда" классического программирования, убираются и замещаются более "трендовыми" аналогами. Разве это не "пересекается с реальным положением вещей"?
ksnk, введение операторов class и extend никак не делает из JavaScript Java.
Мигрировать JavaScript < --- > Java, так же, не так просто, как может показаться.
Есть опыт миграции с Java на JavaScript. С JavaScript на Java, думаю, гораздо трудней.
Антон Спирин, Тут, похоже, какая то личная обида за java, извиняюсь, что считаю java "классическим" языком (с точки зрения синтаксических и логических конструкций ) :) В любом случае - "классификация" JS еще в самом разгаре, так что все еще впереди.