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

12
D
На сайте с 28.06.2008
Offline
1103
270

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

Вот например

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



-S
На сайте с 10.12.2006
Offline
1355
#1
VG
На сайте с 30.04.2017
Offline
86
#2
chatGPT
I7
На сайте с 12.06.2008
Offline
357
#3
Dram :
От чего это зависит?

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

W1
На сайте с 22.01.2021
Offline
297
#4
Dram :
Js знаю плохо. Правлю старые jquery скрипты и стараюсь менять var на let

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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