Что такое переменные?
- Переменные — это просто имена ячеек памяти, в которых хранятся некоторые значения.
Зачем они нам нужны?
- Представьте себе сценарий, в котором вас просят принести немного воды для питья. Вы приносите воду, но эта вода хранится в каком-то контейнере. Почему ты не принес только воды?
- Хорошо, еще один, представьте, если бы у нас не было уникальных имен, данных нашими родителями, чтобы однозначно идентифицировать себя. Как мы будем называть друг друга? Abey o человек ... солнце idhar ... Arey человеческое солнце na ... O человек sunte ho? Аджи человек, сунте хо… Было бы так запутанно ассоциировать всех со словом человек.
- По этой причине нам нужны имена переменных, которые однозначно идентифицируют каждую память значений в разных местах памяти.
Как мы используем переменные?
- Чтобы использовать переменную, нам нужно сначала объявить ее, а затем использовать оператор присваивания «=» и инициализировать ее значением.
// This is how you declare a variable in javascript. a = 5; let b = 10; var c = 20; const d = 30;
- Если вы не знаете, что такое = или что он делает, то зайдите в мой предыдущий блог и почитайте об этом здесь.
Переменные в JavaScript
В JavaScript мы можем объявить и использовать переменную четырьмя способами.
1. Декларация фристайла
- В JavaScript мы можем объявить и использовать переменную, просто написав имя переменной и присвоив ей значение.
- Это означает, что мы объявили глобальную переменную.
- Глобальная переменная — это переменная, которую можно использовать в любом месте программы.
// eg freeStyleVariable = 25; console.log(freeStyleVariable); // 25 { freeStyleVariable = 35; console.log(freeStyleVariable); //35 } console.log(freeStyleVariable); //35
- Если мы видим приведенный выше пример, мы объявили переменную, и когда мы пытаемся изменить ее значение внутри блока, оно также выдает измененное значение как вывод вне блока.
- Так ведет себя глобальная переменная. Доступ к нему можно получить из любого места внутри нашего кода.
- Каким бы удобным это ни выглядело, этот тип объявления категорически не рекомендуется, поскольку он создает двусмысленность и приводит к непредвиденным ошибкам.
2. Объявление var
- Ключевое слово var позволяет нам объявлять переменные с функциональной областью видимости, которые можно инициализировать значением либо во время объявления, либо позже в программе.
- Функциональная область означает, что значения, объявленные с помощью ключевого слова var, могут быть доступны из любого места внутри функции, где они были объявлены.
- Доступ к переменной функциональной области за пределами ее области действия вызовет ошибку ссылки.
// eg function varDeclaration() { var a = 14; console.log(a); // 14 } console.log(a); // Reference Error
- объявления var поднимаются.
Что такое подъем?
- Переменные, объявленные с помощью ключевого слова var, создаются и получают память до того, как они будут инициализированы или им будет присвоено значение, или будет выполнен любой код. Этот процесс называется подъемом.
- Начальное значение этих переменных будет неопределенным до тех пор, пока выполнение кода не достигнет строки, где эти значения были инициализированы.
// example of var hoisting var hoistingExample; console.log(hoistingExample); // undefined hoistingExample = 5; console.log(hoistingExample); // 5
3. пусть Декларация
- ключевое слово let позволяет нам объявлять заблокированные переменные области действия и может быть инициализировано значением либо во время объявления, либо позже в программе.
- Это означает, что переменные, объявленные внутри блока, доступны только внутри этого блока. Если мы попытаемся получить доступ к этим переменным за пределами блока, это вызовет ошибку ссылки.
- Блок — это область, доступная внутри фигурных скобок «{}».
// eg let a = 10; { console.log(a); // Reference error } console.log(a); // 10
- В приведенном выше примере доступ к «a» из блока, в котором он не был объявлен, вызовет ошибку ссылки.
- let можно получить только после того, как он был объявлен и инициализирован, что также означает, что let не поднят.
- Многих проблем с объявлениями let можно избежать, объявив их поверх области, в которой они должны использоваться.
- Если одни и те же переменные let были объявлены внутри одного и того же блока, это вызовет синтаксическую ошибку.
let someVariable = 10; let someVariable = 20; // Uncaught SyntaxError: Identifier 'someVariable' has already been declared
- Подводя итог, можно сказать, что let — это просто var с границами. Так объявить пусть не вар.
4. Константная декларация
- Ключевое слово const позволяет нам объявлять константные переменные с блочной областью видимости, как и let.
- Постоянные переменные — это те переменные, значения которых не меняются на протяжении всей программы.
- Основные ключевые различия между let и const:
- Константная переменная должна быть инициализирована значением прямо во время объявления переменной, тогда как let также может быть инициализирован значением в более поздней части кода.
- Если объявление константы не инициализируется во время объявления переменной, это вызовет синтаксическую ошибку.
// eg let a; a = 50; const b = 5; const b; // Uncaught SyntaxError: Missing initializer in const declaration
- Значение, присвоенное const, не может быть изменено объявлением или переназначением после того, как оно было инициализировано, тогда как в случае let значения могут быть изменены.
- Если мы попытаемся переназначить переменную const или объявить ее заново, это вызовет ошибку типа.
// eg let a = 10; a = 50; const b = 20; b = 60; // Uncaught TypeError: Assignment to constant variable.
- В случае, если какой-либо объект или массив были объявлены как const, их значения могут быть изменены, но объект или массив не могут быть переназначены, тогда как в случае let массивы и объекты могут быть переназначены с другим значением.
- Если мы попытаемся переназначить константный массив или объект или если мы попытаемся повторно объявить его, это вызовет ошибку типа.
let obj = {name : "joy"}; obj = 10; const anotherObj = {place : "lko"}; anotherObj.place = "ggn"; anotherObj = 50; // Uncaught TypeError: Assignment to constant variable.
- Хорошей практикой является объявление константных переменных всеми заглавными буквами.
- Переменные, объявленные как const, не поднимаются.
- let и const при объявлении находятся во временной мертвой зоне (tdz).
Что такое временная мертвая зона?
- Представьте себе младенца в утробе матери. Мы знаем, что младенец существует, но мы не можем потрогать и увидеть его до тех пор, пока он не родится.
- Именно так можно представить тдз.
- Говорят, что переменная, объявленная как let или const, находится во временной мертвой зоне до тех пор, пока выполнение кода не достигнет строки, где переменная была объявлена и инициализирована значением.
- Находясь внутри tdz, переменные еще не были инициализированы значением, и любые попытки доступа к этим переменным вызовут ошибку ссылки.
Это все об объявлении переменной в javascript. Оставьте свои комментарии и предложения, если я что-то пропустил. Любая обратная связь будет оценена.