js里有几种js编码转换规范

OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;
欢迎您订阅我们的技术周刊
我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,
欢迎分享您的观点,经验,技巧,心得
让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;
本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com
订阅邮件周刊
Node.JS编码规范指南教程:教你优雅地写JavaScript代码
注意 转载须保留原文链接,译文链接,作者译者等信息。&&
注* 仅供参数这是用于书写一致性和优美的node.js代码的指南教程。它由社区维护并在社区内流行,参考了一些人的意见。我们维护了一个.jshintrc来强制执行这些规则(自动格式化参数配制)。您可以使用并进行调整,或者编写自己的脚本。本指南是由费利克斯Geisend?rfer创建,并遵守CC BY-SA3.0许可授权。我们鼓励您根据自己的喜好进行调整。2个空格的缩进使用2个空格进行缩进,永远也不要使用混合的tab和空格作为缩进。换行使用Unix风格的换行,每行结尾以(\n)结束,永远不要使用Windows的换行符(\r\n)。无拖尾空白永远也不要在一行后面留空格,在提交之前,你要像每顿饭刷牙一样清理你的JS文件。否则,腐烂的气味会驱走贡献者或同事。使用分号根据科学研究,分号的使用是我们社会的核心价值。考虑一下的观点&,但是我们需要传统,不要滥用纠错机制(省略分号)。注* 在JavaScript中和省略分号一直存在争论,下同。每行最多80个字符每行最多80个字符。是的,屏幕在最近几年越来越大,但是你的脑子没怎么变,你可以使用多余的空间用来分屏。使用单引号只有在JSON文件中才使用双引号Right:var foo = 'bar';Wrong:var foo = "bar";注* 为什么? JavaScript中包含双引号的字符串几乎到处都是,这样你就不需要转义了。在同一行写大括号Right:if (true) {& console.log('winning');}Wrong:if (true){& console.log('losing');}同样,注意在条件前后都加个空格。方法链(调用链)如果你使用方法链,确保每行只调用一个方法。同时你要合理使用缩进来表示他们的父对象是一致的。Right:User& .findOne({ name: 'foo' })& .populate('bar')& .exec(function(err, user) {& && });Wrong:User.findOne({ name: 'foo' }).populate('bar').exec(function(err, user) {&});
User.findOne({ name: 'foo' })& .populate('bar')& .exec(function(err, user) {& && });
User.findOne({ name: 'foo' }).populate('bar').exec(function(err, user) {&});
User.findOne({ name: 'foo' }).populate('bar')& .exec(function(err, user) {& &});每行声明一个变量每个var只声明一个变量,它可以更容易地重新排序。但是,并且变量应该在更有意义的地方声明。Right:var keys & = ['foo', 'bar'];var values = [23, 42];var object = {};
while (keys.length) {& var key = keys.pop();& object[key] = values.pop();}Wrong:var keys = ['foo', 'bar'],& & values = [23, 42],& & object = {},& &
while (keys.length) {& key = keys.pop();& object[key] = values.pop();}使用首字母小写给变量属性和函数命名变量,属性和函数名应该使用lowerCamelCase(首字母小写)。他们也应该是描述性的。一般应避免单字符变量和不常见的缩写。Right:var adminUser = db.query('SELECT * FROM users ...');Wrong:var admin_user = db.query('SELECT * FROM users ...');类名首字母大写类名的首字母应该是大写的Right:function BankAccount() {}Wrong:function bank_Account() {}常量大写常量应该被声明为普通变量或静态类的属性,全部使用大写字母。Node.js/V8实际上支持Mozilla的const的扩展,但遗憾的是不能用于类成员,也不是任何ECMA标准的一部分。Right:var SECOND = 1 * 1000;
function File() {}
File.FULL_PERMISSIONS = 0777;Wrong:const SECOND = 1 * 1000;
function File() {}
File.fullPermissions = 0777;Object / Array 声明使用尾随逗号,把短的声明在一行:Right:var a = ['hello', 'world'];var b = {& good: 'code',& 'is generally': 'pretty'};Wrong:var a = [& 'hello', 'world'];var b = {"good": 'code'& & & & , "is generally": 'pretty'& & & & };使用 === 操作符编写不应该只记事规则,还要学会使用。Right:var a = 0;if (a !== '') {& console.log('winning');}Wrong:var a = 0;if (a == '') {& console.log('losing');}注* === 即会判断类型,又会判断结果。使用多行三元运算符三元运算符不应该用在一行。分割成多行来代替。Right:var foo = (a === b)& ? 1& : 2;Wrong:var foo = (a === b) ? 1 : 2;不要扩展内置对象不要扩展原生JavaScript对象的原型。以后会后悔的。Right:var a = [];if (!a.length) {& console.log('winning');}Wrong:Array.prototype.empty = function() {& return !this.}
var a = [];if (a.empty()) {& console.log('losing');}注* 扩展String.prototype是比较常见的,如format, trim。使用描述性的条件任何判断条件应该分配给一个描述性命名的变量或函数:Right:var isValidPassword = password.length &= 4 && /^(?=.*\d).{4,}$/.test(password);
if (isValidPassword) {& console.log('winning');}Wrong:if (password.length &= 4 && /^(?=.*\d).{4,}$/.test(password)) {& console.log('losing');}写小而短的函数保持你的函数短一点。对一个大房间的最后一排的人民群众而言可以轻松读取幻灯片上的代码是比较合适的。不要指望他们有的视力保持每个函数?15行代码。早点从函数返回为了避免if语句的深层嵌套,总是尽可能早地在函数返回值。Right:function isPercentage(val) {& if (val & 0) {& && }
& if (val & 100) {& && }
&}Wrong:function isPercentage(val) {& if (val &= 0) {& & if (val & 100) {& & && & } else {& & && & }& } else {& && }}命名您的闭包随时给你闭包名称。这表明你关心他们,并能产生更好的堆栈跟踪,heap和cpu profiles。Right:req.on('end', function onEnd() {& console.log('winning');});Wrong:req.on('end', function() {& console.log('losing');});不要嵌套闭包使用闭包,但不能嵌套他们。否则,你的代码会变得一团糟。Right:setTimeout(function() {& client.connect(afterConnect);}, 1000);
function afterConnect() {& console.log('winning');}Wrong:setTimeout(function() {& client.connect(function() {& & console.log('losing');& });}, 1000);使用斜线注释使用斜线为单行和多行注释。尝试从更高层次说明你代码的意图。不要重申琐碎的事情。Right:// 'ID_SOMETHING=VALUE' -& ['ID_SOMETHING=VALUE', 'SOMETHING', 'VALUE']var matches = item.match(/ID_([^\n]+)=([^\n]+)/));
// This function has a nasty side effect where a failure to increment a// redis counter used for statistics will cause an exception. This needs// to be fixed in a later iteration.function loadUser(id, cb) {& // ...}
var isSessionValid = (session.expires & Date.now());if (isSessionValid) {& // ...}Wrong:// Execute a regexvar matches = item.match(/ID_([^\n]+)=([^\n]+)/));
// Usage: loadUser(5, function() { ... })function loadUser(id, cb) {& // ...}
// Check if the session is validvar isSessionValid = (session.expires & Date.now());// If the session is validif (isSessionValid) {& // ...}禁止使用: Object.freeze, Object.preventExtensions, Object.seal, with, eval这些功能很可笑,远离他们。注* 类似Java/C#中的protected / private / seal / final。
原文地址:
&热门文章 - 分享最多
&相关阅读 - JS学习
&关键字 - Node.JS
&欢迎订阅 - 技术周刊
我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;
我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊JS编码规范_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
JS编码规范
&&JS编码规范
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
html+css+js编码规范
摘要:编码规范的作用:&&&&&&提高代码的可读性&&&&&降低代码错误率&&&&&&提高代码的整合效率和重用性&&&&&&为后期的维护提供更高的遍历规范的编码有助于我们更快捷方便的阅读代码HTML命名规则统一用小写的字母、数字和下划线的组合(不得包含空格
编码规范的作用:
&&&&&& 提高代码的可读性&&&& & 降低代码错误率&&&&&& 提高代码的整合效率和重用性&&&&&& 为后期的维护提供更高的遍历规范的编码有助于我们更快捷方便的阅读代码
HTML命名规则统一用小写的字母、数字和下划线的组合(不得包含空格和特殊字符)文件名条件:方便理解和易于查找
1、首页index
2、子页用适合的英文或拼音
图片命名规则:图片的名称为头尾两部分,用下划线隔开图片的头部表示此图片的大类(如:广告、标志、菜单、按钮等等)
大类常规命名:放在页面首部的广告、装饰图等长方形大图取名:banner标志性图片取名:log有链接的图片取名:button没有链接的标题图片取名:title装饰用的照片取名:pic在页面上连续出现、性质相同的栏目图片取名:menu
js命名规范自定义js文件模块:模块.描述.js格式,如:check.js、login.js、regist.js、pop.js公用文件模块:commom.js或者basic.js外部资源模块:Jquery.min.js、Jquery.js
文件存放目录结构:js:存放编写的js文件css:存放编写的css文件image:存放需要使用的图片文件flash:存放需要使用的flash文件media:存放需要使用的多媒体文件,包括视频和音频library:存放一些库文件,包括js库和css库
超链接规范网站中链接路径统一用相对路径浏览器中如果有个空链接,由两种设置模式:#和javascript:void(null)& &a href=&#&&撮我&/a&:链接到当前页面& &a href=&javascript:void(null)&&撮我&/a&:空连接,不跳转到任何页面
表格规范尽量避免表格嵌套过多(会导致延长加载页面时间)tr和td标签能不换行最好不要换行,可能会影响页面展示效果
判断IE浏览器版本方法条件判断固定格式:&!--[if 条件 版本]&需要显示的内容&![endif]--&排除条件:[if !IE 6]& 除了IE6其他的都能显示等于条件和或者条件:[if IE 8]、[if(IE 8)|(IE 10)]高于版本和低于版本(不包含当前版本):[if gt IE 8] 和& [if lt IE 8]高于版本和低于版本(包含当前版本):[if gte IE 8] 和& [if lte IE 8]介于两个版本之间:[if(gt IE 7)&;(lt IE 10)]
兼容性测试工具IE浏览器自带仿真Multibrowser
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
html+css+js编码规范相关信息,包括
的信息,所有html+css+js编码规范相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International初入国内500强,有几个js的编程规范不理解,好吧,只要你进来我就告诉你公司名字。。。
[问题点数:100分,结帖人hjgzj]
初入国内500强,有几个js的编程规范不理解,好吧,只要你进来我就告诉你公司名字。。。
[问题点数:100分,结帖人hjgzj]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第五
2018年2月 总版技术专家分月排行榜第一2017年8月 总版技术专家分月排行榜第一
2013年7月 MS-SQL Server大版内专家分月排行榜第一2009年3月 Oracle大版内专家分月排行榜第一2009年2月 Oracle大版内专家分月排行榜第一
2013年9月 MS-SQL Server大版内专家分月排行榜第二2013年8月 MS-SQL Server大版内专家分月排行榜第二2009年4月 Oracle大版内专家分月排行榜第二2009年1月 Oracle大版内专家分月排行榜第二2004年10月 MS-SQL Server大版内专家分月排行榜第二
2018年3月 总版技术专家分月排行榜第一2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年10月 Web 开发大版内专家分月排行榜第三
匿名用户不能发表回复!|浅谈 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 中以 &script src="filename.js"& 的形式包含进来。JavaScript 代码若不是该 HTML 文件所专用的,则应尽量避免在 HTML 文件中直接编写 JavaScript 代码。因为这样会大大增加 HTML 文件的大小,无益于代码的压缩和缓存的使用。另外,&script src="filename.js"& 标签应尽量放在文件的后面。这样会降低因加载 JavaScript 代码而影响页面中其它组件的加载时间。代码排版行长度每行代码应小于 80 个字符。如果代码较长,应尽量选择换行,下一行代码应缩进 8 个空格。这样可以使代码排版整齐,减轻阅读代码的疲劳感。换行缩进 8 个空格可以和代码段的缩进 4 个空格区分开,以增强代码的可阅读性。行结束JavaScript 语句应该以分号结束。但大多数浏览器允许不写分号,只要在本应是分号的地方有一个换行符就行。但是如果代码行较长需要换行的时候,有哪些注意事项呢?换行应选择在操作符和标点符号之后,最好是在逗号','之后,而不要在变量名、字符串、数字、或')' ']' '++' '--'等符号之后换行。这样可以有效的防止拷贝、粘贴而引起的错误,并可有效地增强代码的可阅读性。请见清单 1,代码的输出符合我们的期望。但就写法而言,对 valueB 的赋值语句是在变量 valueA 之后进行的换行,这很容易被误解为 valueB=ValueA,给阅读造成障碍。而对 valueC 的复制语句是在'+'之后进行的换行,就容易理解的多。这也是本文所提倡的换行方式。清单 1. 行结束的位置 &script language="javascript"&
var valueA = 1;
var valueB = valueA
var valueC = valueB +
alert(valueB);
//output: valueB=2
alert(valueC);//output: valueC=3
&/script&缩进关于缩进的问题,不只是 JavaScript,几乎所有的语言编写的时候,都会提及缩进的问题。缩进几乎是代码编写规范的第一课,是代码可阅读性判断的直接因素。代码缩进的好处是不言而喻的,但是对于如何缩进,则没有标准而言。最受欢迎的是方便使用 TAB 键缩进,也有些喜欢用 2 个、4 个、8 个空格进行缩进。这样缩进风格不一,也同样给代码的阅读带来障碍。本文提倡用 4 个空格来进行缩进,并在同一产品中采用同一种缩进标准。不支持用 TAB 键进行缩进。这是因为直到现在还没有统一的标准来定义 TAB 键所代替的空白大小,有些编辑器解析为 4 个空格大小,有些则解析为 8 个。因而用不同的编辑器查看代码,可能造成格式混乱。当然 TAB 简单易用,为解决这个问题,建议在设置开发环境时,将编辑器里的 TAB 快捷键重新设置为 4 个空格。据了解 Eclipse, Vi, Nodepad++,Editplus, UltraEdit 等流行的编辑器,均提供了此功能。注释代码中的注释很重要,自然也是毋庸置疑的。通常我们会强调代码中注释数量的多少,而轻视了对注释质量的提高。编码是及时添加注释,会给后续代码的维护人员带来很大的便利。但是如果注释不注意更新,或者由于拷贝、粘贴引起的错误的注释,则会误导阅读人员,反而给阅读带来障碍。除了注释要 及时更新外,我们还应对注释的内容要特别关注。注释要尽量简单、清晰明了,避免使用含混晦涩的语言,同时着重 注释的意义,对不太直观的部分进行注解。请见清单 2。清单 2. 有意义的注释 &script language="javascript"&
//following section is used to initialize golbal variables
var valueA = 0;
//initialize
valueA to be sero
var valueB = 1;
//call f1 function after waiting for 50 seconds.
setTimeout(f1,50000); //set timeout to be 20s
(copy error)
&/script&这样的注释方式在 JavaScript 代码中经常见到。"initialize valueA to be sero" 这样的注释有什么用呢?难道阅读程序的工程师从"var valueA = 0;"复制语句中看不出来么?"set timeout to be 20s"这条注释,不只是因拷贝、粘贴引起的时间大小的错误,同时也误导了程序员对这条语句的理解。setTimeout() 函数的作用并非是设置函数执行的超时时间,而是等待一定时间后执行所调用的函数,害人匪浅呀。这样的注释内容宁可删掉。此外,JavaScript 的注释有两种"//" 和"/* .... */",建议"//"用作代码行注释,"/* .... */"形式用作对整个代码段的注销,或较正式的声明中,如函数参数、功能、文件功能等的描述中。标识符命名JavaScript 中的标识符的命名规则:
以字母、下划线'_'或美元符号'$'开头
允许名称中包含字母,数字,下划线'_'和美元符号'$'
区分大小写变量、参数、成员变量、函数等名称均以小写字母开头,构造器的名称以大写字母开头。下划线'_'开头的变量一般习惯于标识私有 / 局部成员。而美元符号'$'开头的变量习惯于标识系统相关,比如系统进程等。应避免用下划线'_'或美元符号'$'来命名标识符。尽可能地降低代码的阅读负担。声明变量的声明尽管 JavaScript 语言并不要求在变量使用前先对变量进行声明。但我们还是应该养成这个好习惯。这样可以比较容易的检测出那些未经声明的变量,避免其变为隐藏的全局变量,造成隐患。在函数的开始应先用 var 关键字声明函数中要使用的局部变量,注释变量的功能及代表的含义,且应以字母顺序排序。每个变量单独占一行,以便添加注释。这是因为 JavaScript 中只有函数的 {} 表明作用域,用 var 关键字声明的局部变量只在函数内有效,而未经 var 声明的变量则被视为全局变量。我们来看下清单 3。清单 3. 局部变量声明
&script language="javascript"&
var valueA
var valueB
function f1() {
var valueA = "c";
alert("valueA="+valueA);
//output: valueA=c
valueB = "d";
alert("valueB="+valueB);
//output: valueB=d
alert("valueA="+valueA);
//output: valueA=a
alert("valueB="+valueB);
//output: valueB=d
&/script&从上例的输出惊奇地发现,用 var 声明过的变量 valueA 和没有声明的变量 valueB 是有区别的。特别需要注意的是,在函数内部用 var 声明的变量为局部变量,这样可以有效地避免因局部变量和全局变量同名而产生的错误。函数的声明函数也应在调用前进行声明,内部函数应在 var 声明内部变量的语句之后声明,可以清晰地表明内部变量和内部函数的作用域。此外,函数名紧接左括号'('之间,而右括号')'和后面的'{'之间要有个空格,以清楚地显示函数名以其参数部分,和函数体的开始。若函数为匿名 / 无名函数,则 function 关键字和左括号'('之间要留空格,否则可能误认为该函数的函数名为 function。清单 4. 内部函数声明
&script language="javascript"&
var innerA = 1;
function outF() {
var innerA = 2;
function _inF() {
alert("valueA="+innerA);
//output: valueA=2
//error: innerF is not defined
&/script&从清单 4 的输出可以看出,inF() 函数仅在 outF() 函数的内部生效,局部变量 innerA 对内部函数的作用域生效。这样的编码方式使得变量和函数的作用域变得清晰。语句对于简单语句而言,需要提及的仍然是分号必要性,同时,一行最多有一个语句。如果一个赋值语句是用函数和对象来赋值,可能需要跨多行,一定切记要在赋值语句末加上分号。这是因为 JavaScript 中,所有表达式都可以当语句,遇换行符时会解析为表达式的结束,此时不规范的换行和分号的丢失,可能引入新的错误。对于复合语句,if, for, while, do, switch, try … catch 等代码体,函数定义的函数体,对象的定义等都需要放在花括号'{}'里面。
'{' 应在行末,标志代码块的开始。
'}' 应在一行开头,标志代码块的结束,同时需要和'{'所在行的开始对齐,以表明一个完整的复合语句段。这样可以极大地提高代码的可阅读性,控制逻辑能清晰地表现出来。
被包含的代码段应该再缩进 4 个空格。
即使被包含的代码段只有一句,也应该用花括号'{}'包含。尽管不用花括号代码也不会错,但如若需要增加语句的话,则较容易因花括号遗漏而引起的编译错误或逻辑错误。return语句在使用时也需慎重,如果用表达式的执行作为返回值,请把表达式和 return 放在同一行中,以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式,则返回 undefined。构造器的默认返回值为 this。清单 5. return 表达式
&script language="javascript"&
function F1() {
var valueA
var valueB
return valueA + valueB;
function F2() {
var valueA
var valueB
valueA + valueB;
alert( F1() );
//output: 3
alert( F2() );
//ouput: undefined
&/script&在清单 5 中显示了因返回表达式没有和 return 关键字放在同一行而引起的返回错误,需重视。特殊符号空白符适当的空白行可以大大提高代码的可阅读性,可以使代码逻辑更清晰易懂。同时,在表达式中适当的留空白,也会给代码的阅读带来方便。关键字的后面如有括号,则最好在关键字和左括号'('之间留空白,如 for, if, while 等。而函数名和括号之间则不宜留空白,但若是匿名函数,则必须在 function 和左括号'('之间留空白,否则,编辑器会误认为函数名为 function。在表达式中,二元运算符 ( 除左括号'(',左方括号'[',作用域点'.') 和两个操作数之间最好留空白。一元运算符(若不是词 typeof 等)和其操作数之间不宜留空白。逗号','的后面需要留空白,以显示明确的参数间隔,变量间隔等。分号';'之后通常表明表达语句的结束,而应空行。在 for 的条件语句中,分号之后则应该留空白。{ } 和 [ ]在 JavaScript 中,如需定义空对象和空数组,通常很自然地想到用 new Object() 和 new Array() 的方法。其实花括号'{}'和方括号'[]'可以直接用来定义一个空对象和一个空数组。这种书写方法可以使代码看起来简单易懂。== 和 ===判断"逻辑等"在代码里太平常的不过事情了,但 JavaScript 与其他熟知的编程语言不同的是,除了可以使用两个等号'=='来作判断以为,还可以使用三个等号'==='来进行逻辑等判断。两者的不同是'=='作逻辑等判断时,会先进行类型转换后再进行比较。'==='则不会。因而,'=='进行的判断结果可能产生偏差。'!='与'!=='的区别亦是如此。本文提倡尽量使用'==='来进行逻辑等的判断,用'!=='进行逻辑不等的判断。清单 6. === 的使用
&script language="javascript"&
var valueA = "1";
var valueB = 1;
if ( valueA == valueB) {
alert("Equal");
alert("Not equal")
//output: "Equal"
if ( valueA === valueB) {
alert("Equal");
alert("Not equal")
//output: "Not equal"
&/script&清单 6 中,valueA 和 valueB 两个变量的值显然是不相等的,起码 valueA 是个字符串,而 valueB 是一个数字。但用'=='进行判断是,程序却输出相等的字样。这是因为编译器对两个变量进行比较时,因为他们的类型不同,而自动地将 valueB 转换成字符串,而后再和 valueA 进行比较的。用'==='得到的判断结果正和预期的结果相符。+加号'+'也同样是程序员所熟知的操作符之一。JavaScript 和其他编程语言不同的是,在 JavaScript 中,'+'除了表示数字值相加,字符串相连接以外,还可以作一元运算符用,把字符串转换为数字。因而如果使用不当,则可能与自增符'++'混淆而引起计算错误。这一点,在清单 7 中可以清楚地看出。清单 7. 巧用 + 号
&script language="javascript"&
var valueA = 20;
var valueB = "10";
alert( valueA + valueB);
//ouput: 2010
alert( valueA + (+valueB)); //output: 30
alert( valueA + +valueB);
//output:30
alert( valueA ++valueB);
//Compile error
&/script&总结本文就 JavaScript 代码的排版、命名、声明、语句、和一些特殊字符的使用等方面,谈了自己对 JavaScript 编程规范的建议。此外,还有许多方面需要深入了解研究,如 with, eval 语句和 this 对象的使用等等。我们在认识其普遍性的同时也需要注意其特殊性,在编写代码时多用心留意,以创造更多更优质的程序代码。声明本文所提及的 JavaScript 编程规范的建议是在学习和工作中归纳出来的,仅供技术交流使用。
《 JavaScript: The Definitive Guide 》第五版,,由 David Flanagan 著,O'Reilly 出版,此书是 JavaScript 程序员必不可少的学习参考书;
《 JavaScript 语言精粹》,,由雅虎资深 JavaScript 架构师 Douglas Crokford 著 , 电子工业大学出版,此书很好地讲述了如何用 JavaScript 创建真正可扩展的和高效的代码;
Douglas Crokford 的博客,,提供了 Douglas 对 JavaScript 语言的研究课题,以及对一些经典问题的讨论;
JavaScript 教程:,W3school 提供的 JavaScript 基础教程。:通过专门关于 Web 技术的文章和教程,扩展您在网站开发方面的技能。:这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。,这是有关 Web 2.0 相关信息的一站式中心,包括大量 Web 2.0 技术文章、教程、下载和相关技术资源。您还可以通过
栏目,迅速了解 Web 2.0 的相关概念。
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=http://www.ibm.com/developerworks/js/artrating/SITE_ID=10Zone=Web developmentArticleID=505557ArticleTitle=浅谈 JavaScript 编程语言的编码规范publish-date=}

我要回帖

更多关于 nodejs编码规范 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信