您的位置:首页 > Web前端 > JavaScript

JavaScript编码风格

2018-03-28 22:12 330 查看
比起制定什么样的规范,坚持遵守规范重要的多。

为什么要有规范

软件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代码的基本要点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: