JavaScript编码风格
2018-03-28 22:12
330 查看
比起制定什么样的规范,坚持遵守规范重要的多。
区块首部大括号的位置放在语句后面(这样可以避免return后自动添加分号带来错误),类似这样:
表示函数定义时,函数名与左括号之间没有空格。
其他情况时,前面位置的语法元素与左括号之间,都有一个空格。
for和while循环(但do .. while语句必须添加)
分支语句:if,switch,try
函数的声明语句
其他情况都要加分号(javaScript解释引擎总会在你意想不到的时候添加分号)
for循环分号分开后的的部分:如
for循环中初始化的多变量(i和max):
分隔数组项的逗号的后面:
对象属性逗号的后面以及分隔属性名和属性值的冒号的后面:
限定函数参数:
函数声明的花括号的前面:
匿名函数表达式function的后面:
使用空格分开所有的操作符和操作对象是另一个不错的使用,这意味着在
因此,避免使用全局变量。如果不得不使用,用大写字母表示变量名,比如
为了避免可能出现的问题,最好把变量声明都放在代码块的头部。
所有函数都应该在使用之前定义,函数内部的变量声明,都应该放在函数的头部
使用
将构造函数与其他函数区分开来。构造函数名称首字符大写。
自增
建议自增(
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
为什么要有规范
软件bug的修复极其昂贵,尤其是随着时间的推移,这些bug的成本会成倍增加。因此,无论是为了自己以后维护方便还是为了减少公司的维护成本,书写可维护的代码异常重要。什么样才是可维护的代码**
1. 可读的 2. 一致的 3. 可预测的 4. 看上去像一个人写的 5. 已记录
如何做
缩进
关于缩进有人喜欢用空格,有人喜欢用tab,记住坚持一直使用同一种方式。区块
总是使用大括号表示区块,不要出现类似:if(true) a(); b();
区块首部大括号的位置放在语句后面(这样可以避免return后自动添加分号带来错误),类似这样:
block { ... }
圆括号
表示函数调用时,函数名与左括号之间没有空格。bar(arg);
表示函数定义时,函数名与左括号之间没有空格。
function bar() {...}
其他情况时,前面位置的语法元素与左括号之间,都有一个空格。
if (a+b) {...}; return (key: value);
行尾的分号
可以不用添加分号的情况for和while循环(但do .. while语句必须添加)
分支语句:if,switch,try
函数的声明语句
其他情况都要加分号(javaScript解释引擎总会在你意想不到的时候添加分号)
空格
适合使用空格的地方包括:for循环分号分开后的的部分:如
for (var i = 0; i < 10; i += 1) {...}
for循环中初始化的多变量(i和max):
for (var i = 0, max = 10; i < max; i += 1) {...}
分隔数组项的逗号的后面:
var a = [1, 2, 3];
对象属性逗号的后面以及分隔属性名和属性值的冒号的后面:
var o = {a: 1, b: 2};
限定函数参数:
myFunc(a, b, c)
函数声明的花括号的前面:
function myFunc() {}
匿名函数表达式function的后面:
var myFunc = function () {};
使用空格分开所有的操作符和操作对象是另一个不错的使用,这意味着在
+, -, *, 4000 =, <, >, <=, >=, ===, !==, &&, ||, +=等前后都需要空格.
全局变量
JavaScript最大的语法缺点,可能就是全局变量对于任何一个代码块,都是可读可写。这对代码的模块化和重复使用,非常不利。因此,避免使用全局变量。如果不得不使用,用大写字母表示变量名,比如
UPPER_CASE。
变量声明
JavaScript会自动将变量声明”提升”(hoist)到代码块(block)的头部。为了避免可能出现的问题,最好把变量声明都放在代码块的头部。
所有函数都应该在使用之前定义,函数内部的变量声明,都应该放在函数的头部
new 命令
new方法调用函数时会产生一个新对象,一旦忘记写new操作符,构造函数内的
this就会执行全局对象,这样便增添了许多全局变量。
使用
Object.create()代替
new操作符。
将构造函数与其他函数区分开来。构造函数名称首字符大写。
with语句
不要使用with语句。
相等和严格相等
不要使用“相等”(==)运算符,只使用“严格相等”(
===)运算符
语句的合并
不要随便合并自增++
和自减--
运算符
建议自增(++)和自减(
--)运算符尽量使用
+=和
-=代替。
switch…case结构
建议避免使用switch...case结构,用对象结构代替。详情见JavaScript标准参考教程
(不)扩展内置原型((Not) Augmenting Built-in Prototypes)
自己手动扩展内置原型,无论是添加属性还是方法,都会给后期的维护带来麻烦。并且私自扩展的属性可能会导致不使用hasOwnProperty属性时在循环中显示出来,这会造成混乱。参考:
JavaScript标准参考教程深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
相关文章推荐
- 一些达成共识的JavaScript编码风格约定
- JavaScript编码风格指南(中文版)
- 前端编码风格规范(3)—— JavaScript 规范
- JavaScript 风格指南/编码规范(Airbnb公司版)一
- 我为什么使用 JavaScript Standard Style(JavaScript 标准编码风格),而且你应该使用
- JavaScript Style Rules 代码风格 编码规范
- JavaScript Standard Style(JavaScript标准编码风格)(一)
- JavaScript 编码风格
- 前端编码风格规范之 JavaScript 规范
- JavaScript 风格指南/编码规范(Airbnb公司版)二
- JavaScript 风格指南/编码规范(Airbnb公司版)三
- JavaScript 风格指南/编码规范(Airbnb公司版)
- 一些达成共识的JavaScript编码风格约定
- 【JavaScript】Ext JS - 高效的编码风格指南
- 模块化的JavaScript编码风格
- 前端编码风格规范之 JavaScript 规范
- 【大师推荐】JavaScript编码风格
- 一些达成共识的JavaScript编码风格约定
- Javascript编码风格
- 淘宝JavaScript 编码风格规范