Рубрики
Без рубрики

JS Интервью за 2 минуты / ===

Давайте попробуем выяснить, как ответить на общие вопросы JS на собеседовании. Tagged с JavaScript, TypeScript, Beginters, Career.

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

Быстрый ответ: Это оба операторы сравнения, но === Также сравните типы операндов.

Более длинный ответ: JavaScript и в основном TypeScript – это языки с неявное преобразование типа . Это означает, что они пытаются преобразовать переменные в «правильные» типы при выполнении операций.

let a = 1
let b = '1';
console.log(a+b)
// "11"

Таким образом, при сравнении объектов он также попытается преобразовать их.

let a = 1
let b = '1'
console.log(a == b)
// true

Мы можем ссылаться на Эта таблица Для получения дополнительных примеров.

Реальный пример: Оказалось очень трудно дать какой-то реалистичный пример реальной проблемы, когда вы используете == вместо ===

Мы можем представить себе случай, когда API возвращает объект JSON, где некоторые поля может быть в 3 штатах – присутствующие, отсутствующие и нулевые.

[
  ...
  { "username": "admin", roles: ["admin"] },
  { "username": "hacker", roles: null }, // disabled
  { "username": "user" },
  ...
]

(Это странно, но у меня на самом деле был этот случай, когда API вернулся null вместо [] Если свойство объекта было пустым массивом 🤷)

Поэтому, если вы напишите условие, используя == будет ошибка.

// both these cases will be triggered
// since undefined == null is true
if (obj.prop == undefined) { ... }
if (obj.prop == null) { ... }
if (obj.prop) { ... }

//Да, этот пример все еще немного искусственный, но если вы можете придумать что -то другое, пожалуйста, поделитесь им в комментариях 🙏

Кстати, я опубликую больше забавных вещей здесь и на Twitter Давайте будем друзьями 👋

Оригинал: “https://dev.to/kozlovzxc/js-interview-in-2-minutes-vs-1f58”