Преобразование объектов в JavaScript

При выполнении определенных операций с переменными JavaScript преобразует типы данных. Например, при выполнении логических операций - в boolean; при выполнении арифметических операций - в number; при выполнении функции alert() - в string. Это касается и объектов.

Результатом преобразования любого объекта (даже пустого) в тип boolean всегда является true.

Для преобразования в тип string JavaScript автоматически выполняет метод объекта toString(). Все объекты (включая пользовательские) имеют метод toString(). По умолчанию для пользовательского объекта (если явно не определено) метод toString() возвращает строку [object Object].

var obj = {
  toString: function() {
    return 'Объект obj';
  }
};
alert(obj); /* Объект obj */

Для преобразования в тип number JavaScript автоматически выполняет метод объекта valueOf(). Если такой метод не определен, то выполняется toString(). По умолчанию valueOf() определен только для нескольких встроенных объектов.

var obj = {
  valueOf: function() {
    return 101;
  }
};
alert(obj - 1); // 100