JavaRush /Курси /Frontend SELF UA /Спеціальні типи в JavaScript

Спеціальні типи в JavaScript

Frontend SELF UA
Рівень 35 , Лекція 1
Відкрита

2.1 Змінні — це посилання

У JavaScript змінні є посиланнями на об'єкти, а не самою змінною. Це означає, що, коли ти створюєш змінну в JavaScript, ти просто створюєш посилання на об'єкт у пам'яті.

Ця особливість мови має важливі наслідки для роботи зі змінними, особливо при передачі об'єктів у функції або їх присвоєнні іншим змінним.

Коли ти створюєш змінну та присвоюєш їй значення, JavaScript виділяє об'єкт у пам'яті для цього значення і робить змінну посиланням на цей об'єкт. Якщо ти присвоїш одну змінну іншій, нова змінна буде посилатися на той самий об'єкт, що й початкова змінна. Це означає, що зміни, зроблені через одну змінну, відобразяться і на іншій, якщо об'єкт змінний.

Приклад:

JavaScript
    
      let a = [1, 2, 3];
      let b = a;

      b.push(4);
      console.log(a);  // Виведе: [1, 2, 3, 4]
    
  

Ми додали число 4 у змінну b, але воно додалося і в список у змінній а, оскільки насправді обидві змінні — це лише посилання на об'єкт список [1, 2, 3]

2.2 Тип undefined

У JavaScript існує два спеціальні типи даних: null і undefined. Ці типи часто викликають питання у розробників через їхню схожість, але вони мають різне призначення і використовуються в різних ситуаціях. Розглянемо їх детальніше.

Тип undefined

Тип undefined представляє значення змінної, яка була оголошена, але не ініціалізована. Це значення також повертається при доступі до неіснуючої властивості об'єкта або елемента масиву, який не існує.

Приклади

1. Неініціалізована змінна:

JavaScript
    
      let x;
      console.log(x); // undefined
    
  

2. Неіснуюча властивість об'єкта:

JavaScript
    
      let obj = {};
      console.log(obj.property); // undefined
    
  

3. Неіснуючий елемент масиву:

JavaScript
    
      let array = [1, 2, 3];
      console.log(array[5]); // undefined
    
  

4. Відсутній аргумент функції:

JavaScript
    
      function myFunction(a, b) {
        console.log(b); // undefined, якщо викликано як myFunction(1)
      }
      myFunction(1);
    
  

Властивості undefined:

  • undefined є типом даних і значенням
  • typeof undefined повертає undefined

2.3 Тип null

Тип null представляє навмисну відсутність значення. Це значення часто використовується для ініціалізації змінних, які будуть пізніше присвоєні об'єктом, або для очищення значення змінної.

Приклади

1. Ініціалізація змінної:

JavaScript
    
      let obj = null;
      console.log(obj); // null
    
  

2. Очищення значення змінної:

JavaScript
    
      let user = { name: "Alice" };
      user = null; // user тепер не вказує на об'єкт
    
  

Властивості null:

  • null є значенням, яке представляє навмисну відсутність значення
  • typeof null повертає object, що є визнаною помилкою в мові JavaScript (насправді null не є об'єктом)

2.4 Порівняння null і undefined

Незважаючи на те, що null і undefined можуть використовуватися для позначення відсутності значення, вони відрізняються за призначенням і контекстом використання.

Властивість null undefined
Тип Примітивний тип Примітивний тип
Призначення Навмисна відсутність значення Неініціалізована змінна
Використання Ініціалізація змінних, очищення значення Неіснуючі властивості, елементи масиву
Значення за замовчуванням Немає Так (для неініціалізованих змінних, параметрів функцій)

Приклади використання

1. Ініціалізація змінної об'єктом або масивом:

JavaScript
    
      let myObject = null;
      let myArray = null;
    
  

2. Перевірка значень:

JavaScript
    
      let value;

      if (value === undefined) {
        console.log("Змінна не ініціалізована.");
      }

      let result = null;

      if (result === null) {
        console.log("Відсутність значення.");
      }
    
  

3. Очищення значень:

JavaScript
    
      let person = { name: "Alice" };
      person = null; // Тепер person не вказує на об'єкт
    
  

4. Перевірка на існування властивості:

JavaScript
    
      let obj = {};

      if (obj.property === undefined) {
        console.log("Властивість не існує.");
      }
    
  

Розуміння відмінностей між null і undefined у JavaScript важливе для правильного управління значеннями та запобігання помилкам у коді.

undefined зазвичай вказує на неініціалізовані змінні або відсутні властивості, тоді як null використовується для явного зазначення про відсутність значення.

Правильне використання цих спеціальних типів даних робить код більш зрозумілим і передбачуваним.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ