ECMAScript | Объекты Булевого типа (Boolean)

20.3.1 Конструктор Boolean

Конструктор Boolean:

  • это %Boolean%.
  • это начальное значение свойства «Boolean» глобального объекта.
  • создаёт и инициализирует новый Логический объект (Boolean) при вызове в качестве конструктора.
  • выполняет преобразование типа при вызове функции, а не конструктора.
  • может использоваться как значение предложения extends определения класса. Конструкторы подкласса, которые намереваются наследовать указанное Логическое поведение (Boolean), должны включать вызов super логического конструктора для создания и инициализации экземпляра подкласса с внутренним слотом [[BooleanData]].

 

20.3.1.1 Boolean ( value )

Когда Boolean вызывается с аргументом value, выполняются следующие шаги:

1. Пусть b будет ! ToBoolean(value).
2. Если NewTarget является undefined (не определен), вернуть b.
3. Пусть О будет ? OrdinaryCreateFromConstructor(NewTarget, "%Boolean.prototype%", «[[BooleanData]]»).
4. Установите для O.[[BooleanData]] значение b.
5. Вернуть O.

20.3.2 Свойства логического конструктора

Логический конструктор Boolean:

  • имеет внутренний слот [[Prototype]], значение которого — %Function.prototype%.
  • обладает следующими свойствами:

20.3.2.1 Boolean.prototype

Начальным значением Boolean.prototype является объект-прототип Boolean.

Это свойство имеет атрибуты {[[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false}.

 

20.3.3 Свойства объекта-прототипа Логического типа (Boolean)

Логический объект-прототип (Boolean prototype object):

  • это %Boolean.prototype%.
  • это обычный объект.
  • сам является Логическим объектом; у него есть внутренний слот [[BooleanData]] со значением false.
  • имеет внутренний слот [[Prototype]], значение которого %Object.prototype%.

Абстрактная операция thisBooleanValue принимает аргумент value. При вызове она выполняет следующие шаги:

1. Если Тип(value) является Логическим (Boolean), вернуть value.
2. Если Тип(value) является Объектом (Object), а значение имеет внутренний слот [[BooleanData]], тогда
   а. Пусть b будет значением. [[BooleanData]].
   b. Утверждено: Тип(b) является Логическим (Boolean).
   c. Вернуть b.
3. Вызвать исключение TypeError.

 

20.3.3.1 Boolean.prototype.constructor

Начальное значение Boolean.prototype.constructor — это %Boolean%.

20.3.3.2 Boolean.prototype.toString ( )

Выполняются следующие шаги:

1. Пусть b будет ? thisBooleanValue(значение this).
2. Если b является true (истинно), вернуть строковое "true"; иначе верните строковое "false".

20.3.3.3 Boolean.prototype.valueOf ( )

Выполняются следующие шаги:

1. Вернуть ? thisBooleanValue(значение this).

20.3.4 Свойства Логических экземпляров

Логические экземпляры Boolean — это обычные объекты, которые наследуют свойства от объекта-прототипа Boolean. У Логических экземпляров есть внутренний слот [[BooleanData]]. Внутренний слот [[BooleanData]] — это логическое значение, представленное этим логическим объектом.

 

Информационные ссылки

Стандарт ECMAScript — Раздел «20.3 Boolean Objects» — https://tc39.es/ecma262/#sec-boolean-objects

Поделись записью