[Chinese-translation] README.chinese.md - add 3.2 3.3 3.6 3.7

This commit is contained in:
matt_jin
2017-12-09 14:52:37 +08:00
parent 806dfd3142
commit ae30dc0433

View File

@ -227,33 +227,33 @@
## ![✔] 3.2 Node JS 特定的插件
**TL;DR:** On top of ESLint standard rules that cover vanilla JS only, add Node-specific plugins like [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node), [eslint-plugin-mocha](https://www.npmjs.com/package/eslint-plugin-mocha) and [eslint-plugin-node-security](https://www.npmjs.com/package/eslint-plugin-security)
**TL;DR:** 除了仅仅涉及 vanilla JS 的 ESLint 标准规则,添加 Node 相关的插件,比如[eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node), [eslint-plugin-mocha](https://www.npmjs.com/package/eslint-plugin-mocha) and [eslint-plugin-node-security](https://www.npmjs.com/package/eslint-plugin-security)
**Otherwise:** Many faulty Node.JS code patterns might escape under the radar. For example, developers might require(variableAsPath) files with a variable given as path which allows attackers to execute any JS script. Node.JS linters can detect such patterns and complain early
**否则:** 许多错误的Node.js代码模式可能在检测下逃生。例如开发人员可能需要某些文件把一个变量作为路径名 (variableAsPath) 这会导致攻击者可以执行任何JS脚本。Node.JS linters可以检测这类模式并及早预警。
<br/><br/>
## ![✔] 3.3 Start a Codeblock's Curly Braces in the Same Line
## ![✔] 3.3 在同一行开始一个代码块的大括号
**TL;DR:** The opening curly braces of a code block should be in the same line of the opening statement.
**TL;DR:** 代码块的第一个大括号应该和声明的起始保持在同一行中。
### Code Example
### 代码示例
```javascript
// Do
// 建议
function someFunction() {
// code block
// 代码块
}
//Avoid
// 避免
function someFunction
{
// code block
// 代码块
}
```
**Otherwise:** Deferring from this best practice might lead to unexpected results, as seen in the Stackoverflow thread below:
**否则:** 不遵守这项最佳实践可能导致意外的结果在Stackoverflow的帖子中可以查看到如下
🔗 [**Read more:** "Why does a results vary based on curly brace placement?" (Stackoverflow)](https://stackoverflow.com/questions/3641519/why-does-a-results-vary-based-on-curly-brace-placement)
🔗 [**更多:** "Why does a results vary based on curly brace placement?" (Stackoverflow)](https://stackoverflow.com/questions/3641519/why-does-a-results-vary-based-on-curly-brace-placement)
<br/><br/>
@ -273,23 +273,23 @@
<br/><br/>
## ![✔] 3.6 Naming conventions for variables, constants, functions and classes
## ![✔] 3.6 变量、常量、函数和类的命名约定
**TL;DR:** Use ***lowerCamelCase*** when naming variables and functions, ***UpperCamelCase*** (capital first letter as well) when naming classes and ***UPPERCASE*** for constants. This will help you to easily distinguish between plain variables / functions, and classes that require instantiation. Use descriptive names, but try to keep them short.
**TL;DR:** 当命名变量和方法的时候,使用 ***lowerCamelCase*** 当命名类的时候,使用***UpperCamelCase*** (首字母大写),对于常量,则***UPPERCASE***。这将帮助您轻松地区分普通变量/函数和需要实例化的类。使用描述性名称,但使它们尽量简短。
**Otherwise:** Javascript is the only language in the world which allows to invoke a constructor ("Class") directly without instantiating it first. Consequently, Classes and function-constructors are differentiated by starting with UpperCamelCase.
**否则:** JavaScript是世界上唯一一门不需要实例化,就可以直接调用构造函数("Class")的编码语言。因此,类和函数的构造函数由采用UpperCamelCase开始区分。
### Code Example ###
### 代码示例 ###
```javascript
// for class name we use UpperCamelCase
// 使用UpperCamelCase命名类名
class SomeClassExample () {
// for const name we use UPPERCASE
// 常量使用UPPERCASE
const CONFIG = {
key: 'value'
};
// for variables and functions names we use lowerCamelCase
// 变量和方法使用lowerCamelCase
let someVariableExample = 'value';
function doSomething() {
@ -300,13 +300,13 @@
<br/><br/>
## ![✔] 3.7 Prefer const over let. Ditch the var
## ![✔] 3.7 使用const优于let废弃var
**TL;DR:** Using `const` means that once a variable is assigned, it cannot be reassigned. Prefering const will help you to not be tempted to use the same variable for different uses, and make your code clearer. If a variable needs to be reassigned, in a for loop for example, use `let` to declare it. Another important aspect of let is that a variable declared using let is only available in the block scope in which it was defined. `var` is function scoped, not block scoped, and [shouldn't be used in ES6](https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70) now that you have const and let at your disposal.
**TL;DR:** 使用` const `意味着一旦一个变量被分配它不能被重新分配。使用const将帮助您免于使用相同的变量用于不同的用途并使你的代码更清晰。如果一个变量需要被重新分配以在一个循环为例使用 `let` 声明它。let的另一个重要方面是使用let声明的变量只在定义它的块作用域中可用。 `var` 是函数作用域不是块级作用域既然您有const和let让您随意使用那么[不应该在ES6中使用var](https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70)
**Otherwise:** Debugging becomes way more cumbersome when following a variable that frequently changes.
**否则:** 当经常更改变量时,调试变得更麻烦了。
🔗 [**Read more: JavaScript ES6+: var, let, or const?** ](https://medium.com/javascript-scene/javascript-es6-var-let-or-const-ba58b8dcde75)
🔗 [**更多: JavaScript ES6+: var, let, or const?** ](https://medium.com/javascript-scene/javascript-es6-var-let-or-const-ba58b8dcde75)
<br/><br/>