Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Сравнение типов данных

Все темы React Developer

В чем разница между null и undefined?

Разница между null и undefined в JavaScript:

  1. undefined:

    • Значение: Переменная объявлена, но не инициализирована.

    • Тип: undefined.

    • Примеры использования:

      let a;
      console.log(a); // undefined
  2. null:

    • Значение: Явное указание на отсутствие значения или “ничто”.

    • null является единственным значением примитивного типа Null. typeof null возвращает строку “object” из-за исторической особенности JavaScript.

    • Примеры использования:

      let b = null;
      console.log(b); // null

Основные различия:

  • Назначение: undefined означает, что переменная не инициализирована, а null указывает на намеренное отсутствие значения.

  • null является единственным значением примитивного типа Null. typeof null возвращает строку “object” из-за исторической особенности JavaScript.


В чем разница между операторами "==" и "==="?

Разница между "==" и "===" в JavaScript

  1. Оператор “==” (нестрогое равенство):

    • Сравнивает значения после приведения типов.

    • Пример:

      console.log(2 == '2'); // true (число и строка приводятся к одному типу)
      console.log(null == undefined); // true
  2. Оператор “===” (строгое равенство):

    • Сравнивает значения без приведения типов.

    • Пример:

      console.log(2 === '2'); // false (разные типы: число и строка)
      console.log(null === undefined); // false

Основные различия:

  • Приведение типов: “==” приводит операнды к одному типу перед сравнением, а “===” не приводит и сравнивает типы и значения напрямую.

  • Использование: “===” предпочтительнее использовать для точных сравнений, чтобы избежать непредвиденных результатов из-за приведения типов.


Почему результатом сравнения двух похожих объектов является false?

В JavaScript объекты сравниваются по ссылке, а не по значению. Даже если два объекта имеют одинаковые свойства и значения, они будут считаться разными, если ссылаются на разные места в памяти.

Пример:

let obj1 = { a: 1 };
let obj2 = { a: 1 };

console.log(obj1 === obj2); // false
console.log(obj1 == obj2); // false

Объяснение:

  • Сравнение по ссылке: obj1 и obj2 содержат одинаковые данные, но находятся в разных местах памяти. Сравнение этих объектов будет false, так как их ссылки разные.

  • Сравнение примитивов: Для примитивных типов (числа, строки, логические значения и т. д.) сравнение выполняется по значению, а не по ссылке.

Эта страница была полезной?