Что такое переменные?

  • Переменные — это просто имена ячеек памяти, в которых хранятся некоторые значения.

Зачем они нам нужны?

  • Представьте себе сценарий, в котором вас просят принести немного воды для питья. Вы приносите воду, но эта вода хранится в каком-то контейнере. Почему ты не принес только воды?
  • Хорошо, еще один, представьте, если бы у нас не было уникальных имен, данных нашими родителями, чтобы однозначно идентифицировать себя. Как мы будем называть друг друга? 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. Оставьте свои комментарии и предложения, если я что-то пропустил. Любая обратная связь будет оценена.