@@ -49,12 +49,12 @@ ECMAScript 6规格的26章之中,第1章到第3章是对文件本身的介绍
49
49
> 1 . If ` Type(x) ` is Number and ` Type(y) ` is String,
50
50
> return the result of the comparison ` x == ToNumber(y) ` .
51
51
> 1 . If ` Type(x) ` is String and ` Type(y) ` is Number,
52
- > return the result of the comparison ToNumber(x) == y.
52
+ > return the result of the comparison ` ToNumber(x) == y ` .
53
53
> 1 . If ` Type(x) ` is Boolean, return the result of the comparison ` ToNumber(x) == y ` .
54
54
> 1 . If ` Type(y) ` is Boolean, return the result of the comparison ` x == ToNumber(y) ` .
55
55
> 1 . If ` Type(x) ` is either String, Number, or Symbol and ` Type(y) ` is Object, then
56
56
> return the result of the comparison ` x == ToPrimitive(y) ` .
57
- > 1 . If ` Type(x) ` is Object and ` Type(y) ` is either String, Number, or Symbol, then
57
+ > 1 . If ` Type(x) ` is Object and ` Type(y) ` is either String, Number, or Symbol, then
58
58
> return the result of the comparison ` ToPrimitive(x) == y ` .
59
59
> 1 . Return ` false ` .
60
60
@@ -73,7 +73,7 @@ ECMAScript 6规格的26章之中,第1章到第3章是对文件本身的介绍
73
73
> 1 . 如果` Type(x) ` 是对象,` Type(y) ` 是字符串或数值或` Symbol ` 值,返回` ToPrimitive(x) == y ` 的结果。
74
74
> 1 . 返回` false ` 。
75
75
76
- 由于` 0 ` 的类型是数值,` null ` 的类型是Null(这是规格[ 4.3.13小节] ( http://www.ecma-international.org/ecma-262/6.0/#sec-4.3.13 ) 的规定,是内部Type运算的结果,跟` typeof ` 运算符无关)。因此上面的前11步运算步骤都得不到结果 ,要到第12步才能得到` false ` 。
76
+ 由于` 0 ` 的类型是数值,` null ` 的类型是Null(这是规格[ 4.3.13小节] ( http://www.ecma-international.org/ecma-262/6.0/#sec-4.3.13 ) 的规定,是内部Type运算的结果,跟` typeof ` 运算符无关)。因此上面的前11步都得不到结果 ,要到第12步才能得到` false ` 。
77
77
78
78
``` javascript
79
79
0 == null // false
@@ -139,27 +139,27 @@ a2.map(n => 1) // [, , ,]
139
139
后面的算法描述是这样的。
140
140
141
141
> 1 . Let ` O ` be ` ToObject(this value) ` .
142
- > 1 . ReturnIfAbrupt(O).
143
- > 1 . Let len be ToLength(Get(O, "length")).
144
- > 1 . ReturnIfAbrupt(len).
145
- > 1 . If IsCallable(callbackfn) is false, throw a TypeError exception.
146
- > 1 . If thisArg was supplied, let T be thisArg; else let T be undefined.
147
- > 1 . Let A be ArraySpeciesCreate(O, len).
148
- > 1 . ReturnIfAbrupt(A).
149
- > 1 . Let k be 0.
150
- > 1 . Repeat, while k < len
151
- > a. Let Pk be ToString(k).
152
- > b. Let kPresent be HasProperty(O, Pk).
153
- > c. ReturnIfAbrupt(kPresent).
154
- > d. If kPresent is true, then
155
- > d-1. Let kValue be Get(O, Pk).
156
- > d-2. ReturnIfAbrupt(kValue).
157
- > d-3. Let mappedValue be Call(callbackfn, T, «kValue, k, O»).
158
- > d-4. ReturnIfAbrupt(mappedValue).
159
- > d-5. Let status be CreateDataPropertyOrThrow (A, Pk, mappedValue).
160
- > d-6. ReturnIfAbrupt(status).
161
- > e. Increase k by 1.
162
- > 1 . Return A .
142
+ > 1 . ` ReturnIfAbrupt(O) ` .
143
+ > 1 . Let ` len ` be ` ToLength(Get(O, "length")) ` .
144
+ > 1 . ` ReturnIfAbrupt(len) ` .
145
+ > 1 . If ` IsCallable(callbackfn) ` is ` false ` , throw a TypeError exception.
146
+ > 1 . If ` thisArg ` was supplied, let ` T ` be ` thisArg ` ; else let ` T ` be ` undefined ` .
147
+ > 1 . Let ` A ` be ` ArraySpeciesCreate(O, len) ` .
148
+ > 1 . ` ReturnIfAbrupt(A) ` .
149
+ > 1 . Let ` k ` be 0.
150
+ > 1 . Repeat, while ` k ` < ` len `
151
+ > a. Let ` Pk ` be ` ToString(k) ` .
152
+ > b. Let ` kPresent ` be ` HasProperty(O, Pk) ` .
153
+ > c. ` ReturnIfAbrupt(kPresent) ` .
154
+ > d. If ` kPresent ` is ` true ` , then
155
+ > d-1. Let ` kValue ` be ` Get(O, Pk) ` .
156
+ > d-2. ` ReturnIfAbrupt(kValue) ` .
157
+ > d-3. Let ` mappedValue ` be ` Call(callbackfn, T, «kValue, k, O») ` .
158
+ > d-4. ` ReturnIfAbrupt(mappedValue) ` .
159
+ > d-5. Let ` status ` be ` CreateDataPropertyOrThrow (A, Pk, mappedValue) ` .
160
+ > d-6. ` ReturnIfAbrupt(status) ` .
161
+ > e. Increase ` k ` by 1.
162
+ > 1 . Return ` A ` .
163
163
164
164
翻译如下。
165
165
@@ -177,12 +177,12 @@ a2.map(n => 1) // [, , ,]
177
177
> b. 设定` kPresent ` 等于` HasProperty(O, Pk) ` ,即求当前数组有没有指定属性
178
178
> c. 如果报错就返回
179
179
> d. 如果` kPresent ` 等于` true ` ,则进行下面步骤
180
- > d-1. 设定` kValue ` 等于` Get(O, Pk) ` ,取出当前数组的指定属性
181
- > d-2. 如果报错就返回
182
- > d-3. 设定` mappedValue ` 等于` Call(callbackfn, T, «kValue, k, O») ` ,即执行回调函数
183
- > d-4. 如果报错就返回
184
- > d-5. 设定` status ` 等于` CreateDataPropertyOrThrow (A, Pk, mappedValue) ` ,即将回调函数的值放入` A ` 数组的指定位置
185
- > d-6. 如果报错就返回
180
+ > d-1. 设定` kValue ` 等于` Get(O, Pk) ` ,取出当前数组的指定属性
181
+ > d-2. 如果报错就返回
182
+ > d-3. 设定` mappedValue ` 等于` Call(callbackfn, T, «kValue, k, O») ` ,即执行回调函数
183
+ > d-4. 如果报错就返回
184
+ > d-5. 设定` status ` 等于` CreateDataPropertyOrThrow (A, Pk, mappedValue) ` ,即将回调函数的值放入` A ` 数组的指定位置
185
+ > d-6. 如果报错就返回
186
186
> e. ` k ` 增加1
187
187
> 1 . 返回` A `
188
188
0 commit comments