Это третья статья из серии Javascript Starwars. Итак, приступим к переменным.

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

В Javascript мы рассматриваем переменные как «ящики с метками», и каждый ящик — это «именованное хранилище» для данных. Мы можем поместить значения в эти поля, чтобы сохранить их и получить к ним доступ позже. Переменные также известны как «идентификаторы».

Почему «переменные»?

Может быть, глупо задавать этот вопрос опытным разработчикам, но разве это не правильный вопрос?

Какова главная причина изобретать переменные. Можем ли мы писать программы без переменных?
Ответ: да, можем, но как насчет тех случаев, когда нам нужно использовать их позже или поделиться нашим кодом с кем-то еще, чтобы прочитать его? Вот где переменные приходят на помощь.

Синтаксис

// 3 типа переменных объявления

var старое = 5;

пусть new1 = 10;

const new2 = 15;

Правила объявления переменных

Существуют некоторые правила при объявлении переменной JavaScript.

  1. Имя должно начинаться с буквы (от a до z или от A до Z), подчеркивания (_) или знака доллара ($).
  2. После первой буквы мы можем использовать цифры (от 0 до 9), например, значение1.
  3. Переменные JavaScript чувствительны к регистру, например, x и X — разные переменные.
  4. Нельзя использовать зарезервированные ключевые слова в качестве переменных, таких как class, function, let, const, var и т. д.
// Note: assuming strict mode

// Some invalid variablesvar 1luke;
let *;
var let;
const star^wars = "invalid";


// Valid variables
var luke1;
let $temp;
const CODE = 10.2;
let star_wars;

Совет. Чтобы код был чище, не бойтесь использовать столько переменных, сколько во время компиляции все будет оптимизировано для экономии памяти.

Регистр имеет значение

Переменные с именами apple и APPLE — это две разные переменные.

«Let» против «Var» против «Const»

Мы можем объявить переменные для хранения данных, используя ключевые слова var, let или const. В современном javascript мы используем только let и const, но в старые времена люди объявляли переменные с помощью «var».

  • let — заблокировано.
  • var — это область действия функции. Обычно мы его вообще не используем.
  • const — похоже на let, но значение переменной изменить нельзя.

Зачем использовать «Let and Const» вместо «Var»

Есть несколько причин, по которым мы используем let и const (представленные в ES6) вместо var.

  • Let и const выдают ошибку, если с их помощью повторно объявляется переменная с тем же именем в той же области видимости.

Пример-

// assuming strict mode  
var darthVader;  

darthVader = 2; // valid  

var darthVader = "evil"; // No error - should throw error as this cause confusion & data loss  

let luke; 
const skywalker = "hero";  
let luke; // Syntax error redeclaration not allowed of same variable
  • Проблемы с областью действия — var относится к области действия функции, тогда как let/const заблокировано.

Пример-

// assuming strict mode  

var galaxy = 1000; 

if(galaxy > 100) {
   var owner = "darth vader";
    console.log(`Galaxy no ${galaxy} is onwed by ${owner}`) 
}  

// "owner" accessible here i.e in outer Block scope aka Globalscope
// assuming strict mode  

var galaxy = 1000; 
if(galaxy > 100) {
  var jedi = "luke";
  console.log(`Galaxy no ${galaxy} is onwed by ${jedi}`) 
}  

// "jedi" not accessible here // Reference error will be thrown

ВРЕМЕННАЯ МЕРТВАЯ ЗОНА — это пространство в программе, где мы пытаемся получить доступ к переменным до их объявления. Разберемся для var и let/const -

console.log(death_star); // undefined   


// All space above here is "Temporal dead zone" 
var death_star = "big";

console.log(death_star); // "lego"
console.log(lego_death_star); // Reference Error   


// All space above here is "Temporal dead zone" 
let lego_death_star = "big";

Итак, да, это было краткое введение о «переменных». Больше знаний впереди…

Оставайтесь с нами для следующего эпизода. Спасибо.

✍️ Среда — https://codecutters.medium.com/
☕️ Buymeacoffee — https://www.buymeacoffee.com/ codecutters
🦄 Хэш-узел — https://codecutters.hashnode.dev/
❤️ Youtube — https://www.youtube.com /@codecutters/

Я-я-я, ты идешь… Я знаю, и еще не последовал за мной? без проблем.
Шучу. Пожалуйста, ставьте лайк, делитесь и подписывайтесь, пока не устанут руки…

ха-ха-ха… Да прибудет с вами javascript :)