Журнал

Преобразование объектов в примитивы в JS

2.08.2023

В JavaScript объекты можно преобразовать в примитивные значения с помощью неявного или явного преобразования.

Неявное преобразование происходит, когда объект используется в контексте, ожидающем примитивное значение:

let obj = {
  valueOf: function() {
    return 42;
  },
  
  toString: function() {
    return 'object';
  }
};

console.log(obj + 1); // 43
console.log(String(obj)); // object

В приведенном примере объект obj определяет методы valueOf и toString. При неявном преобразовании obj + 1, JavaScript вызывает метод valueOf объекта obj, чтобы получить его примитивное значение. Если метод valueOf не возвращает примитив, вызывается метод toString. Аналогично, когда объект передается в функцию String(), JavaScript также вызывает метод toString.

Если методы valueOf и toString не определены, происходит преобразование объекта в строку [object Object].

Явное преобразование может быть выполнено с помощью функций Number(), String() и Boolean():

let obj = {
  valueOf: function() {
    return 42;
  }
};

console.log(Number(obj)); // 42
console.log(String(obj)); // [object Object]
console.log(Boolean(obj)); // true

В данном случае преобразование выполняется с помощью соответствующих функций и вызова соответствующих методов объекта.

Похожие статьи:

СТАРТ 23 октября 2023

Привет!
Я бот школы DevHouse.
Хочешь в IT? Я знаю как.
Preloader