JavaScript 编码规范
一、命名规范
1. 变量
- 命名方法:小驼峰式命名法(由小写字母开始,后续每个单词首字母都大写)
- 命名建议:语义化的名词
-
特殊:
布尔值变量建议添加符合其含义的前缀动词-
is
:是否 -
can
:能不能 -
has
:有没有
-
-
示例:
// 页面标题let pageTitle = "JS命名规范";// 是否显示let isShow = false;
2. 常量
- 命名方法:全部大写,用下划线来分割单词
3. 函数
- 命名方法:小驼峰式命名法(由小写字母开始,后续每个单词首字母都大写)
- 命名建议:语义化,前缀为动词
-
示例:
// 获取列表数据function getList() { // ...}
3. 类(构造函数)
- 命名方法:大驼峰式命名法(由大写字母开始,后续每个单词首字母都大写)
-
命名建议:语义化的名词
class Login { // ...}
-
实例属性和方法(遵循变量和函数的命名规范)
class Login { // 实例属性 name = "iqeq"; // 实例方法 login = function () { // ... } // 实例方法简写 reset() { // ... }}
-
静态属性和方法(遵循变量和函数的命名规范)
class Login { // 静态属性 static description = "登陆业务逻辑"; // 静态方法 static log = function () { // ... }}
二、编码规则
1. 禁止在function
中定义同名的变量
如果在一个函数中出现多个同名的参数,后面出现的会覆盖前面出现的参数。
错误代码示例:
function foo(a, b, a) { console.log("value of the second a:", a);}
正确代码示例:
function foo(a, b, c) { console.log(a, b, c);}
2. 禁止对在代码块中声明function
错误代码示例:
if (test) { function doSomethingElse () { // ... } doSomethingElse();}
正确代码示例:
function doSomethingElse () { // ...}if (test) { doSomethingElse();}
3. 禁止在 return
throw
continue
和break
语句后出现不可达代码
错误代码示例:
function foo() { return true; console.log("done");}function bar() { throw new Error("Oops!"); console.log("done");}while(value) { break; console.log("done");}throw new Error("Oops!");console.log("done");function baz() { if (Math.random() < 0.5) { return; } else { throw new Error(); } console.log("done");}
4. 禁止对原生对象赋值
错误代码示例:
window = {};Object = null;undefined = 1;
5. 禁止重新声明变量
在JavaScript
中,可以对同一个变量再次声明。这会使变量实际声明和定义的位置混乱不堪。
错误代码示例:
var a = 3;var a = 10;
正确代码示例:
var a = 3;// ...a = 10;
6. 禁止声明未被使用过的变量
已声明的变量在代码里未被使用过,就像是由于不完整的重构而导致的遗漏错误。这样的变量增加了代码量,并且混淆读者。
错误代码示例:
function test(a) { // b变量虽然声明了,但没被使用 var b = 1; return a + 1;}
持续更新....