javascript

位置:IT落伍者 >> javascript >> 浏览文章

javascript中的编程语言如何编码规范


发布日期:2019年03月24日
 
javascript中的编程语言如何编码规范

对于熟悉 C/C++ 或 Java 语言的工程师来说javascript 显得灵活简单易懂对代码的格式的要求也相对松散很容易学习并运用到自己的代码中也正因为这样javascript 的编码规范也往往被轻视开发过程中修修补补最终也就演变成为后续维护人员的恶梦软件存在的长期价值直接与编码的质量成比例编码规范能帮助我们降低编程中不必要的麻烦而 javascript 代码是直接发送给客户浏览器的直接与客户见面编码的质量更应该受到关注

本文浅谈 javascript 编程中关于编码规范的问题分析其中缘由希望引起更多 Web 开发人员对 javascript 编码规范问题的关注和对软件产品质量问题的重视

前言

提及 C/C++ 和 Java 编码规范相信许多工程师并不生疏但说到 javascript 语言的编码规范也许您会忍俊不禁javascript 不是语法很灵活吗?变量随时用随时可以声明;语句结束符可以不要;字符串和数字也可以相加;参数多一个少一个也不会报错没错当您从 C/C++ 和 Java 严格的语法规定之下转向 javascript 语言会觉得自由了很多轻松了很多语法松散是 javascript 重要的特征它灵活易懂给开发人员带来了很多方便但如果编写过程中不注意代码的调试成本和维护成本则会无形地增加

javascript 编码会随应被直接发送到客户端的浏览器代码规范不只是代码质量的保证也影响到产品的长期信誉希望 javascript 编程语言的规范问题也能同样引起更多朋友的关注

javascript 编码规范建议

本文就 javascript 编码过程中涉及的排版命名声明作用域及一些特殊符号的使用等方面根据个人在学习工作中的总结给出自己的一些建议并分析其中缘由以供参考

javascript 文件引用

javascript 程序应该尽量放在 js 的文件中需要调用的时候在 HTML 中以

从清单 的输出可以看出inF() 函数仅在 outF() 函数的内部生效局部变量 innerA 对内部函数的作用域生效这样的编码方式使得变量和函数的作用域变得清晰

语句

对于简单语句而言需要提及的仍然是分号必要性同时一行最多有一个语句如果一个赋值语句是用函数和对象来赋值可能需要跨多行一定切记要在赋值语句末加上分号

这是因为 javascript 中所有表达式都可以当语句遇换行符时会解析为表达式的结束此时不规范的换行和分号的丢失可能引入新的错误

对于复合语句if for while do switch try … catch 等代码体函数定义的函数体对象的定义等都需要放在花括号{}里面

{ 应在行末标志代码块的开始

} 应在一行开头标志代码块的结束同时需要和{所在行的开始对齐以表明一个完整的复合语句段这样可以极大地提高代码的可阅读性控制逻辑能清晰地表现出来

被包含的代码段应该再缩进 个空格

即使被包含的代码段只有一句也应该用花括号{}包含尽管不用花括号代码也不会错但如若需要增加语句的话则较容易因花括号遗漏而引起的编译错误或逻辑错误

return语句在使用时也需慎重如果用表达式的执行作为返回值请把表达式和 return 放在同一行中以免换行符被误解析为语句的结束而引起返回错误return 关键字后若没有返回表达式则返回 undefined构造器的默认返回值为 this

清单 return 表达式

在清单 中显示了因返回表达式没有和 return 关键字放在同一行而引起的返回错误需重视

特殊符号

空白符

适当的空白行可以大大提高代码的可阅读性可以使代码逻辑更清晰易懂同时在表达式中适当的留空白也会给代码的阅读带来方便

关键字的后面如有括号则最好在关键字和左括号(之间留空白如 for if while 等而函数名和括号之间则不宜留空白但若是匿名函数则必须在 function 和左括号(之间留空白否则编辑器会误认为函数名为 function

在表达式中二元运算符 ( 除左括号(左方括号[作用域点) 和两个操作数之间最好留空白一元运算符(若不是词 typeof 等)和其操作数之间不宜留空白

逗号的后面需要留空白以显示明确的参数间隔变量间隔等

分号;之后通常表明表达语句的结束而应空行在 for 的条件语句中分号之后则应该留空白

{ } 和 [ ]

在 javascript 中如需定义空对象和空数组通常很自然地想到用 new Object() 和 new Array() 的方法其实花括号{}和方括号[]可以直接用来定义一个空对象和一个空数组这种书写方法可以使代码看起来简单易懂

               

上一篇:cookie.js 加载顺序问题怎么才有效

下一篇:Extjs单独定义各组件的实例代码