let не всегда может заменить var ?

12
D
На сайте с 28.06.2008
Offline
1101
256

Js знаю плохо. Правлю старые jquery скрипты и стараюсь менять var на let (IDE подсвечивает) и вот иногда функционал скрипта ломается. От чего это зависит?

Вот например

Если тут var поменять на лет при определении функции, то она перестанет работать. Как в итоге привильно?



-S
На сайте с 10.12.2006
Offline
Модератор1353
#1
VG
На сайте с 30.04.2017
Offline
86
#2
chatGPT
Ilya74
На сайте с 12.06.2008
Offline
352
#3
Dram :
От чего это зависит?

Предназначение совершенно разное. С чего Вы вообще решили, что они взаимозаменяемые?)
Через let объявляются переменные для использования внутри функции/цикла/условия, а через var - для использования глобально. К примеру, объявленная через let внутри if переменная не будет доступна за пределами этого if.

⚡️ Хостинг и VPS в Москве, Новосибирске, Нидерландах, США ( https://x5x.host )
W1
На сайте с 22.01.2021
Offline
283
#4
Dram :
Js знаю плохо. Правлю старые jquery скрипты и стараюсь менять var на let

Если что-то плохо знаешь, то не надо это трогать, если оно работает. Меняй только то, что знаешь, как и зачем.

Dram :
От чего это зависит?

От контекста использования. Читай мануалы, там куча различий между let и var.

Мой форум - https://webinfo.guru –Там я всегда на связи
V
На сайте с 17.11.2010
Offline
226
#5

Да нет там никакой кучи. let  - видимая только в том блоке котором объявлена, а var и за пределами.

И самое главное - специально переделывать ничего не надо. Ибо там уже все по идее отлажено, и конфликтов имен переменных возникнуть не должно.

P.S. Опять же например в том же Котлине ввели var, мол это даже круто, в отличии от Java, у которой вообще нет специального ключевого слово для переменной.

Еще раз старый, рабочий проверенный код, нет смысла переписывать, это новый нужно писать но новым канонам, так легче якобы. Но это ИМХО опять же.

W1
На сайте с 22.01.2021
Offline
283
#6
Vladimirus #:

Да нет там никакой кучи. let  - видимая только в том блоке котором объявлена, а var и за пределами.

Читай мануалы.

V
На сайте с 17.11.2010
Offline
226
#7
webinfo #:

Читай мануалы.

Взаимно.
W1
На сайте с 22.01.2021
Offline
283
#8
Vladimirus #:
Взаимно.

О чём я и написал в своём комменте выше. Читать руководства и спецификации - правильнее, чем просить изложить полное содержание руководства на форуме. На форуме можно попросить разъяснения по конкретным вопросам, непонятным после прочтения руководства. Иначе возникает неполное/неправильное понимание изучаемой темы.

V
На сайте с 17.11.2010
Offline
226
#9

У меня вопросов не возникало.:) У меня ответ возникал.

В целом, читать конечно правильно, но для начинающего чтение документации бесполезная трата времени. Потому как не хватает фундаментальных знаний - она тупо непонятна. (Документацию пишут не для новичков, или учеников, она для специалистов)

Алеандр
На сайте с 08.12.2010
Offline
183
#10
Dram :
Если тут var поменять на лет при определении функции, то она перестанет работать. Как в итоге привильно?
Не менять, очевидно. Например тут: https://learn.javascript.ru/var описана разница и поведение при тех или иных объявлениях var. Просто нужно понимать, что тупой заменой в лоб вы легко можете сломать всю логику построения скрипта и, если он длиннее, чем в пару десятков строк, то концы этих изменений вы будете искать долго и нудно.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий