Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重学js —— 基本对象:布尔对象 #109

Open
lizhongzhen11 opened this issue May 11, 2020 · 0 comments
Open

重学js —— 基本对象:布尔对象 #109

lizhongzhen11 opened this issue May 11, 2020 · 0 comments
Labels
js基础 Good for newcomers 重学js 重学js系列 规范+MDN

Comments

@lizhongzhen11
Copy link
Owner

基本对象:布尔对象

布尔构造器

  • 即 固有对象 %Boolean%
  • 全局对象 Boolean 属性的初始值
  • 当作为构造器调用时,创建并初始化新的布尔对象
  • 作为普通函数调用时执行类型转换
  • 被设计成子类。它可以用作类定义的 extends 子句的值。打算继承指定的 Boolean 行为的子类构造函数必须包括对 Boolean 构造函数的 super 调用,以创建和初始化具有内置插槽 [[BooleanData]] 的子类实例。

Boolean ( value )

  1. 定义 b! ToBoolean(value)
  2. 如果 NewTargetundefined,返回 b
  3. 定义 O? OrdinaryCreateFromConstructor(NewTarget, "%Boolean.prototype%", « [[BooleanData]] »)
  4. 设置 O.[[BooleanData]]b
  5. 返回 O

布尔构造器上的属性

Boolean.prototype

初始值为 %Boolean.prototype%

属性描述符为 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }

布尔原型对象上的属性

布尔原型对象:

  • 即固有对象 %BooleanPrototype%
  • 普通对象
  • 本身就是一个布尔对象;有 [[BooleanData]] 内置插槽,值为 false
  • [[Prototype]] 内置插槽,值为 %Object.prototype%

抽象运算 thisBooleanValue 使用参数 value

  • 如果 value 是布尔类型,返回 value
  • 如果 value 是对象且有 [[BooleanData]] 内置插槽
    • 定义 bvalue.[[BooleanData]]
    • 断言:b 是布尔类型
    • 返回 b
  • TypeError 异常

Boolean.prototype.constructor

初始值为 %Boolean%

Boolean.prototype.toString ( )

  1. 定义 b? thisBooleanValue(this 值)
  2. 如果 btrue,返回 "true",否则返回 "false"

Boolean.prototype.valueOf ( )

  1. 返回 ? thisBooleanValue(this 值)

布尔实例属性

普通对象,继承 布尔原型对象 上的属性。布尔实例有 [[BooleanData]] 内置插槽。[[BooleanData]] 内置插槽表示该布尔对象的布尔值。

@lizhongzhen11 lizhongzhen11 added js基础 Good for newcomers 重学js 重学js系列 规范+MDN labels May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js基础 Good for newcomers 重学js 重学js系列 规范+MDN
Projects
None yet
Development

No branches or pull requests

1 participant