@@ -92,7 +92,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
92
92
93
93
- [2.1 ](#2.1 ) < a name= ' 2.1' >< / a> 对所有的引用使用 ` const` ;不要使用 ` var` 。
94
94
95
- > 为什么?这能确保你无法对引用重新赋值,也不会导致出现 bug 或难以理解。
95
+ > 为什么?这能确保你无法对引用重新赋值,也不会导致出现 bug 或难以理解。
96
96
97
97
` ` ` javascript
98
98
// bad
@@ -106,7 +106,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
106
106
107
107
- [2.2 ](#2.2 ) < a name= ' 2.2' >< / a> 如果你一定需要可变动的引用,使用 ` let` 代替 ` var` 。
108
108
109
- > 为什么?因为 ` let` 是块级作用域,而 ` var` 是函数作用域。
109
+ > 为什么?因为 ` let` 是块级作用域,而 ` var` 是函数作用域。
110
110
111
111
` ` ` javascript
112
112
// bad
@@ -187,7 +187,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
187
187
< a name= " es6-computed-properties" >< / a>
188
188
- [3.4 ](#3.4 ) < a name= ' 3.4' >< / a> 创建有动态属性名的对象时,使用可被计算的属性名称。
189
189
190
- > 为什么?因为这样可以让你在一个地方定义所有的对象属性。
190
+ > 为什么?因为这样可以让你在一个地方定义所有的对象属性。
191
191
192
192
` ` ` javascript
193
193
function getKey(k) {
@@ -235,7 +235,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
235
235
< a name= " es6-object-concise" >< / a>
236
236
- [3.6 ](#3.6 ) < a name= ' 3.6' >< / a> 使用对象属性值的简写。
237
237
238
- > 为什么?因为这样更短更有描述性。
238
+ > 为什么?因为这样更短更有描述性。
239
239
240
240
` ` ` javascript
241
241
const lukeSkywalker = 'Luke Skywalker';
@@ -253,7 +253,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
253
253
254
254
- [3.7 ](#3.7 ) < a name= ' 3.7' >< / a> 在对象属性声明前把简写的属性分组。
255
255
256
- > 为什么?因为这样能清楚地看出哪些属性使用了简写。
256
+ > 为什么?因为这样能清楚地看出哪些属性使用了简写。
257
257
258
258
` ` ` javascript
259
259
const anakinSkywalker = 'Anakin Skywalker';
@@ -338,7 +338,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
338
338
339
339
- [5.1 ](#5.1 ) < a name= ' 5.1' >< / a> 使用解构存取和使用多属性对象。
340
340
341
- > 为什么?因为解构能减少临时引用属性。
341
+ > 为什么?因为解构能减少临时引用属性。
342
342
343
343
` ` ` javascript
344
344
// bad
@@ -375,7 +375,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
375
375
` ` `
376
376
377
377
- [5.3 ](#5.3 ) < a name= ' 5.3' >< / a> 需要回传多个值时,使用对象解构,而不是数组解构。
378
- > 为什么?增加属性或者改变排序不会改变调用时的位置。
378
+ > 为什么?增加属性或者改变排序不会改变调用时的位置。
379
379
380
380
` ` ` javascript
381
381
// bad
@@ -435,7 +435,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
435
435
< a name= " es6-template-literals" >< / a>
436
436
- [6.4 ](#6.4 ) < a name= ' 6.4' >< / a> 程序化生成字符串时,使用模板字符串代替字符串连接。
437
437
438
- > 为什么?模板字符串更为简洁,更具可读性。
438
+ > 为什么?模板字符串更为简洁,更具可读性。
439
439
440
440
` ` ` javascript
441
441
// bad
@@ -461,7 +461,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
461
461
462
462
- [7.1 ](#7.1 ) < a name= ' 7.1' >< / a> 使用函数声明代替函数表达式。
463
463
464
- > 为什么?因为函数声明是可命名的,所以他们在调用栈中更容易被识别。此外,函数声明会把整个函数提升(hoisted),而函数表达式只会把函数的引用变量名提升。这条规则使得[箭头函数](#arrow- functions)可以取代函数表达式。
464
+ > 为什么?因为函数声明是可命名的,所以他们在调用栈中更容易被识别。此外,函数声明会把整个函数提升(hoisted),而函数表达式只会把函数的引用变量名提升。这条规则使得[箭头函数](#arrow- functions)可以取代函数表达式。
465
465
466
466
` ` ` javascript
467
467
// bad
@@ -519,7 +519,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
519
519
< a name= " es6-rest" >< / a>
520
520
- [7.6 ](#7.6 ) < a name= ' 7.6' >< / a> 不要使用 ` arguments` 。可以选择 rest 语法 ` ...` 替代。
521
521
522
- > 为什么?使用 ` ...` 能明确你要传入的参数。另外 rest 参数是一个真正的数组,而 ` arguments` 是一个类数组。
522
+ > 为什么?使用 ` ...` 能明确你要传入的参数。另外 rest 参数是一个真正的数组,而 ` arguments` 是一个类数组。
523
523
524
524
` ` ` javascript
525
525
// bad
@@ -586,27 +586,29 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
586
586
587
587
- [8.1 ](#8.1 ) < a name= ' 8.1' >< / a> 当你必须使用函数表达式(或传递一个匿名函数)时,使用箭头函数符号。
588
588
589
- > 为什么? 因为箭头函数创造了新的一个 ` this` 执行环境(译注:参考 [Arrow functions - JavaScript | MDN ](https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) 和 [ES6 arrow functions, syntax and lexical scoping](http://toddmotto.com/es6-arrow-functions-syntaxes-and-lexical-scoping/)),通常情况下都能满足你的需求,而且这样的写法更为简洁。
589
+ > 为什么? 因为箭头函数创造了新的一个 ` this` 执行环境(译注:参考 [Arrow functions - JavaScript | MDN ](https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) 和 [ES6 arrow functions, syntax and lexical scoping](http://toddmotto.com/es6-arrow-functions-syntaxes-and-lexical-scoping/)),通常情况下都能满足你的需求,而且这样的写法更为简洁。
590
590
591
- > 为什么不?如果你有一个相当复杂的函数,你或许可以把逻辑部分转移到一个函数声明上。
591
+ > 为什么不?如果你有一个相当复杂的函数,你或许可以把逻辑部分转移到一个函数声明上。
592
592
593
593
` ` ` javascript
594
594
// bad
595
595
[1, 2, 3].map(function (x) {
596
- return x * x;
596
+ const y = x + 1;
597
+ return x * y;
597
598
});
598
599
599
600
// good
600
601
[1, 2, 3].map((x) => {
601
- return x * x;
602
+ const y = x + 1;
603
+ return x * y;
602
604
});
603
605
` ` `
604
606
605
607
- [8.2 ](#8.2 ) < a name= ' 8.2' >< / a> 如果一个函数适合用一行写出并且只有一个参数,那就把花括号、圆括号和 ` return` 都省略掉。如果不是,那就不要省略。
606
608
607
- > 为什么?语法糖。在链式调用中可读性很高。
609
+ > 为什么?语法糖。在链式调用中可读性很高。
608
610
609
- > 为什么不?当你打算回传一个对象的时候。
611
+ > 为什么不?当你打算回传一个对象的时候。
610
612
611
613
` ` ` javascript
612
614
// good
@@ -625,7 +627,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
625
627
626
628
- [9.1 ](#9.1 ) < a name= ' 9.1' >< / a> 总是使用 ` class` 。避免直接操作 ` prototype` 。
627
629
628
- > 为什么? 因为 ` class` 语法更为简洁更易读。
630
+ > 为什么? 因为 ` class` 语法更为简洁更易读。
629
631
630
632
` ` ` javascript
631
633
// bad
@@ -654,7 +656,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
654
656
655
657
- [9.2 ](#9.2 ) < a name= ' 9.2' >< / a> 使用 ` extends` 继承。
656
658
657
- > 为什么?因为 ` extends` 是一个内建的原型继承方法并且不会破坏 ` instanceof` 。
659
+ > 为什么?因为 ` extends` 是一个内建的原型继承方法并且不会破坏 ` instanceof` 。
658
660
659
661
` ` ` javascript
660
662
// bad
@@ -737,7 +739,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
737
739
738
740
- [10.1 ](#10.1 ) < a name= ' 10.1' >< / a> 总是使用模组 (` import` / ` export` ) 而不是其他非标准模块系统。你可以编译为你喜欢的模块系统。
739
741
740
- > 为什么?模块就是未来,让我们开始迈向未来吧。
742
+ > 为什么?模块就是未来,让我们开始迈向未来吧。
741
743
742
744
` ` ` javascript
743
745
// bad
@@ -755,7 +757,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
755
757
756
758
- [10.2 ](#10.2 ) < a name= ' 10.2' >< / a> 不要使用通配符 import 。
757
759
758
- > 为什么?这样能确保你只有一个默认 export 。
760
+ > 为什么?这样能确保你只有一个默认 export 。
759
761
760
762
` ` ` javascript
761
763
// bad
@@ -767,7 +769,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
767
769
768
770
- [10.3 ](#10.3 ) < a name= ' 10.3' >< / a> 不要从 import 中直接 export。
769
771
770
- > 为什么?虽然一行代码简洁明了,但让 import 和 export 各司其职让事情能保持一致。
772
+ > 为什么?虽然一行代码简洁明了,但让 import 和 export 各司其职让事情能保持一致。
771
773
772
774
` ` ` javascript
773
775
// bad
@@ -787,7 +789,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
787
789
788
790
- [11.1 ](#11.1 ) < a name= ' 11.1' >< / a> 不要使用 iterators。使用高阶函数例如 ` map()` 和 ` reduce()` 替代 ` for-of` 。
789
791
790
- > 为什么?这加强了我们不变的规则。处理纯函数的回调值更易读,这比它带来的副作用更重要。
792
+ > 为什么?这加强了我们不变的规则。处理纯函数的回调值更易读,这比它带来的副作用更重要。
791
793
792
794
` ` ` javascript
793
795
const numbers = [1, 2, 3, 4, 5];
@@ -888,7 +890,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
888
890
889
891
- [13.3 ](#13.3 ) < a name= ' 13.3' >< / a> 将所有的 ` const` 和 ` let` 分组
890
892
891
- > 为什么?当你需要把已赋值变量赋值给未赋值变量时非常有用。
893
+ > 为什么?当你需要把已赋值变量赋值给未赋值变量时非常有用。
892
894
893
895
` ` ` javascript
894
896
// bad
@@ -913,7 +915,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
913
915
914
916
- [13.4 ](#13.4 ) < a name= ' 13.4' >< / a> 在你需要的地方给变量赋值,但请把它们放在一个合理的位置。
915
917
916
- > 为什么?` let` 和 ` const` 是块级作用域而不是函数作用域。
918
+ > 为什么?` let` 和 ` const` 是块级作用域而不是函数作用域。
917
919
918
920
` ` ` javascript
919
921
// good
@@ -1468,7 +1470,7 @@ ES5 的编码规范请查看[版本一](https://github.com/sivan/javascript-styl
1468
1470
1469
1471
- [19.2 ](#19.2 ) < a name= ' 19.2' >< / a> 增加结尾的逗号: ** 需要** 。
1470
1472
1471
- > 为什么? 这会让 git diffs 更干净。另外,像 babel 这样的转译器会移除结尾多余的逗号,也就是说你不必担心老旧浏览器的[尾逗号问题](es5/ README .md #commas)。
1473
+ > 为什么? 这会让 git diffs 更干净。另外,像 babel 这样的转译器会移除结尾多余的逗号,也就是说你不必担心老旧浏览器的[尾逗号问题](es5/ README .md #commas)。
1472
1474
1473
1475
` ` ` javascript
1474
1476
// bad - git diff without trailing comma
0 commit comments