Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e70963e

Browse files
committed
docs(operator): fix equality operator
1 parent 02c1074 commit e70963e

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

‎docs/operators/comparison.md‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ v1 === v2 // true
227227
1 === 1.0
228228
```
229229

230-
比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。类型转换规则如下
230+
比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。下面分成四种情况,讨论不同类型的值互相比较的规则
231231

232232
**(1)原始类型值**
233233

@@ -273,17 +273,24 @@ v1 === v2 // true
273273
对象(这里指广义的对象,包括数组和函数)与原始类型的值比较时,对象转换成原始类型的值,再进行比较。
274274

275275
```javascript
276+
// 对象与数值比较时,对象转为数值
276277
[1] == 1 // true
277278
// 等同于 Number([1]) == 1
278279

280+
// 对象与字符串比较时,对象转为字符串
279281
[1] == '1' // true
280-
// 等同于 Number([1]) == Number('1')
282+
// 等同于 String([1]) == '1'
283+
[1, 2] == '1,2' // true
284+
// 等同于 String([1, 2]) == '1,2'
281285

286+
// 对象与布尔值比较时,两边都转为数值
282287
[1] == true // true
283288
// 等同于 Number([1]) == Number(true)
289+
[2] == true // false
290+
// 等同于 Number([2]) == Number(true)
284291
```
285292

286-
上面代码中,数组`[1]`与数值进行比较,会先转成数值,再进行比较;与字符串进行比较,会先转成数值,再与字符串进行比较,然后字符串也会转成数值;与布尔值进行比较,两个运算子都会先转成数值,然后再进行比较
293+
上面代码中,数组`[1]`与数值进行比较,会先转成数值,再进行比较;与字符串进行比较,会先转成字符串,再进行比较;与布尔值进行比较,对象和布尔值都会先转成数值,再进行比较
287294

288295
**(3)undefined 和 null**
289296

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /