深入理解JavaScript系列(1):编写高质量JavaScript代码的基本(9)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:48 点击:

 

左花括号的位置(Opening Brace Location)
开发人员对于左大括号的位置有着不同的偏好——在同一行或是下一行。

if (true) {   alert("It's TRUE!");}//或if (true){   alert("It's TRUE!");}复制代码

 


这个实例中,仁者见仁智者见智,但也有个案,括号位置不同会有不同的行为表现。这是因为分号插入机制(semicolon insertion mechanism)——JavaScript是不挑剔的,当你选择不使用分号结束一行代码时JavaScript会自己帮你补上。这种行为可能会导致麻 烦,如当你返回对象字面量,而左括号却在下一行的时候:

// 警告: 意外的返回值function func() {   return  // 下面代码不执行   {      name : "Batman"   }}复制代码
 

如果你希望函数返回一个含有name属性的对象,你会惊讶。由于隐含分号,函数返回undefined。前面的代码等价于:

// 警告: 意外的返回值function func() {   return undefined;  // 下面代码不执行   {      name : "Batman"   }}复制代码
 

总之,总是使用花括号,并始终把在与之前的语句放在同一行:

function func() {   return {      name : "Batman"   };}复制代码
 

关于分号注:就像使用花括号,你应该总是使用分号,即使他们可由JavaScript解析器隐式创建。这不仅促进更科学和更严格的代码,而且有助于解决存有疑惑的地方,就如前面的例子显示。
空格(White Space)
空格的使用同样有助于改善代码的可读性和一致性。在写英文句子的时候,在逗号和句号后面会使用间隔。在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 () {};
使用空格分开所有的操作符和操作对象是另一个不错的使用,这意味着在+, -, *, =, <, >, <=, >=, ===, !==, &&, ||, +=等前后都需要空格。

// 宽松一致的间距// 使代码更易读// 使得更加“透气”var d = 0,    a = b + 1;if (a && b && c) {    d = a % c;    a += d;}// 反面例子// 缺失或间距不一// 使代码变得疑惑var d = 0,    a = b + 1;if (a&&b&&c) {    d=a % c;    a+= d;}复制代码
 

最后需要注意的一个空格——花括号间距。最好使用空格:

函数、if-else语句、循环、对象字面量的左花括号的前面({)
else或while之间的右花括号(})
空格使用的一点不足就是增加了文件的大小,但是压缩无此问题。

有一个经常被忽略的代码可读性方面是垂直空格的使用。你可以使用空行来分隔代码单元,就像是文学作品中使用段落分隔一样。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 用js检测两个线段是否相交
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
  • Jquery封装幻灯片效果
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1