编程风格

空格

表示函数调用时,函数名与左括号之间没有空格。

表示函数定义时,函数名与左括号之间没有空格。

其他情况时,前面位置的语法元素与左括号之间,都有一个空格。

按照上面的规则,下面的写法都是不规范的。

foo (bar)
return(a+b);
if(a === 0) {…}
function foo (b) {…}
function(x) {…}
上面代码的最后一行是一个匿名函数,function是语法关键字,不是函数名,所以与左括号之间应该要有一个空格。

行尾的分号

分号表示一条语句的结束。JavaScript 允许省略行尾的分号。事实上,确实有一些开发者行尾从来不写分号。但是,由于下面要讨论的原因,建议还是不要省略这个分号。

不使用分号的情况
首先,以下三种情况,语法规定本来就不需要在结尾添加分号。

(1)for 和 while 循环

for ( ; ; ) {
} // 没有分号

while (true) {
} // 没有分号
注意,do…while循环是有分号的。

do {
a–;
} while(a > 0); // 分号不能省略
(2)分支语句:if,switch,try

if (true) {
} // 没有分号

switch () {
} // 没有分号

try {
} catch {
} // 没有分号
(3)函数的声明语句

function f() {
} // 没有分号
注意,函数表达式仍然要使用分号。

var f = function f() {
};
以上三种情况,如果使用了分号,并不会出错。因为,解释引擎会把这个分号解释为空语句。

建议不要使用相等运算符(),只使用严格相等运算符(=)。

switch…case 结构

switch…case结构要求,在每一个case的最后一行必须是break语句,否则会接着运行下一个case。这样不仅容易忘记,还会造成代码的冗长。

而且,switch…case不使用大括号,不利于代码形式的统一。此外,这种结构类似于goto语句,容易造成程序流程的混乱,使得代码结构混乱不堪,不符合面向对象编程的原则。

function doAction(action) {
switch (action) {
case ‘hack’:
return ‘hack’;
case ‘slash’:
return ‘slash’;
case ‘run’:
return ‘run’;
default:
throw new Error(‘Invalid action.’);
}
}
上面的代码建议改写成对象结构。

function doAction(action) {
var actions = {
‘hack’: function () {
return ‘hack’;
},
‘slash’: function () {
return ‘slash’;
},
‘run’: function () {
return ‘run’;
}
};

if (typeof actions[action] !== ‘function’) {
throw new Error(‘Invalid action.’);
}

return actionsaction;
}
因此,建议switch…case结构可以用对象结构代替。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶子 ✪ω✪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值