променливи let и const
Нека обхватът на променливата е блок.
Както си спомняме, променлива, декларирана чрез var, се вижда навсякъде във функцията.
Променлива, декларирана с let, се вижда само в блока, в който е декларирана.
Например променлива чрез var:
В примера по-горе apples е една променлива за целия код, който е модифициран в if.
Същото с let ще работи по различен начин:
Тук всъщност има две независими променливи apples, едната е глобална, втората е в блока if.
Това е така, защото променливата let винаги се вижда точно в блока, където е декларирана, и не повече.
Такъв достъп ще доведе до грешка:
Обърнете внимание също, че променливите let не могат да бъдат повторно декларирани. Тоест този код ще изведе грешка:
Това - въпреки че изглежда като ограничение в сравнение с var, но всъщност не създава проблеми. Например два такива цикъла изобщо не са в конфликт:
Когато се използва в цикъл, се създава променлива за всяка итерация.
Променливата var е една за всички итерации на цикъла и се вижда дори след цикъла:
С променливата let всичко е различно.
Това улеснява решаването на класическия проблем със затварянето, описан в проблема с армията от функции.
Декларацията const дефинира константа, тоест променлива, която не може да бъде променена:
Имайте предвид, че ако даден обект е присвоен на константа, тогава самата константа е защитена от промяна, но не и свойствата в нея:
Същото важи и ако на константата е присвоена стойност на масив или друг обект.
Константите, които винаги са твърдо кодирани в цялата програма, обикновено се пишат с главни букви. Например: const ORANGE = "#ffa500" .
Повечето променливи са константи в различен смисъл: те не се променят, след като бъдат присвоени. Нотази стойност може да бъде различна за различните стартирания на функции. За такива променливи можете да използвате const и обикновени малки букви в името.
Променлива const е константа, в противен случай точно като let.