Классы-обертки над элементарными типами

Вы заметили, как мы преобразовывали число в строку в предыдущем разделе?

let x = 10, y = 5.2;
console.log( x.toString() );     // 10
console.log( x.toString(8) );    // 12
console.log( y.toString() );     // 5.2

Мы вызвали метод toString() у числа, которое является элементарным типом. Откуда методы у элементарных типов? Разве элементарные типы являются экземплярами какого-либо класса? В языке JavaScript над элементарными типами данных существуют классы-«обертки». Когда мы пытаемся получить доступ с помощью точечной нотации, элементарный тип number автоматически преобразуется в объекта класса Number. Метод toString() как раз и является членом класса Number. Если в операции участвуют число и экземпляр класса Number, то экземпляр класса будет автоматически преобразован в число:

var x = new Number(10);
var y = 255;
console.log(x + y);           // 265
console.log(typeof (x + y));  // number

Давайте рассмотрим основные классы-«обертки» и соответствующие им элементарные типы, а так же способы создания объектов и получения значений элементарных типов:

  • Boolean — тип boolean:
var a = new Boolean(true);
var b = a.valueOf();
console.log(typeof b);       // boolean
  • Number — тип number:
var x = new Number(10);
var y = x.valueOf();
console.log(typeof y);       // number
  • String — тип string:
var a = new String('Строка');
var b = a.valueOf();
console.log(typeof b);       // string
На заметку

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов