Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 70 из 114 · 10 мин
toString, toLocaleString и valueOf у Object, обёртки Boolean, Symbol.toPrimitive и Symbol.toStringTag.
Вывожу заказ на страницу — а там [object Object]!
Объект не знает, как стать строкой. Научи его — методами toString, valueOf или Symbol.toPrimitive.
toString()Object.prototype.toString даёт "[object Тип]". Свой toString() используется в шаблонах и склейке.const order = { id: 7, toString() { return `Заказ №${this.id}`; } };
console.log(`${order}`, Object.prototype.toString.call([]));valueOf()const bill = { total: 440, valueOf() { return this.total; } };
console.log(bill + 60, bill > 400);toLocaleString()toString(); у чисел, дат и массивов — учитывает язык.console.log((1250.5).toLocaleString("ru-RU"), [1000, 2000].toLocaleString("ru-RU"));Symbol.toPrimitive[Symbol.toPrimitive](hint) получает "string", "number" или "default" и решает, во что превратиться.const price = {
[Symbol.toPrimitive](hint) { return hint === "string" ? "220 ₽" : 220; }
};
console.log(`${price}`, price * 2);Symbol.toStringTag[object Имя].class Order { get [Symbol.toStringTag]() { return "Order"; } }
console.log(Object.prototype.toString.call(new Order()));Boolean: toString() · valueOf()true.toString() → "true". Не создавай new Boolean(false) — объект-обёртка всегда truthy.console.log(true.toString(), new Boolean(false) ? "truthy!" : "falsy", new Boolean(false).valueOf());Объекту, который выводится людям, дай свой toString() — и [object Object] больше не появится.
Добавь классу Order метод toString() (возвращает ` Заказ №${this.id}: ${this.total} ₽ ) и valueOf() (возвращает total`).
Выберите один ответ.
Что выведет String({})?
Выберите один ответ.
Чем опасен new Boolean(false)?
Проверяем состояние обучения…