Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: JavaScript, string, primitive, object, equality, type coercion

Что произойдёт при сравнении примитивной строки со строкой, созданной через конструктор String, с помощью строгого и нестрогого равенства?

Проверяет понимание разницы между примитивными строками и объектами String при использовании операторов == и === в JavaScript.

Короткий ответ

При нестрогом равенстве (==) примитивная строка и объект String считаются равными, так как происходит приведение типов: объект преобразуется в примитив. При строгом равенстве (===) они не равны, потому что сравниваются разные типы: примитив и объект. Это важное различие помогает избежать ошибок при сравнении строк.

Длинный ответ

Сравнение примитивных строк и объектов String

В JavaScript строки могут быть как примитивами, так и объектами, созданными через конструктор String. При использовании операторов равенства поведение различается из-за механизма приведения типов.

Нестрогое равенство (==)

Оператор == выполняет приведение типов перед сравнением. Если один операнд — примитивная строка, а другой — объект String, объект преобразуется в примитив с помощью метода valueOf или toString. В результате оба значения становятся строками, и сравнение возвращает true.

let primitive = 'hello';
let object = new String('hello');
console.log(primitive == object); // true

Строгое равенство (===)

Оператор === сравнивает и значение, и тип без приведения. Примитивная строка имеет тип string, а объект String — тип object. Поэтому сравнение возвращает false.

console.log(primitive === object); // false

Практическое применение

На практике рекомендуется всегда использовать примитивные строки (литералы) и оператор === для избежания неожиданных результатов. Объекты String редко нужны, но могут встречаться в старом коде или при работе с некоторыми API.

Вывод

Понимание разницы между примитивными строками и объектами String помогает писать предсказуемый код и избегать ошибок, связанных с приведением типов. Используйте строгое равенство для надёжного сравнения строк.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#JavaScript

#string

#primitive

#object

#equality

#type coercion

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию