位置: 编程技术 - 正文

Dojo Javascript 编程规范 规范自己的JavaScript书写

编辑:rootadmin

推荐整理分享Dojo Javascript 编程规范 规范自己的JavaScript书写,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

良好的JavaScript书写习惯的优点不言而喻,今天彬Go向大家推荐Dojo Javascript 编程规范,相当不错的 Javascript 编程风格规范,建议大家可以借鉴一下此规范编写 Javascript。感谢i.feelinglucky的翻译。

Any violation to this guide is allowed if it enhances readability.

所有的代码都要变成可供他人容易阅读的。

快读参考

核心 API 请使用下面的风格:

结构 规则 注释 模块 小写 不要使用多重语义(Never multiple words) 类 骆驼 公有方法 混合 其他的外部调用也可以使用 lower_case(),这样的风格 公有变量 混合 常量 骆驼 或 大写

下面的虽然不是必要的,但建议使用:

结构 规则 私有方法 混合,例子:_mixedCase 私有变量 混合,例子:_mixedCase 方法(method)参数 混合,例子:_mixedCase, mixedCase 本地(local)变量 混合,例子:_mixedCase, mixedCase

命名规范

1.变量名称 必须为 小写字母。2.类的命名使用骆驼命名规则,例如:

Account, EventHandler

3.常量 必须 在对象(类)或者枚举变量的前部声明。枚举变量的命名必须要有实际的意义,并且其成员 必须 使用骆驼命名规则或使用大写:

4.简写单词 不能使用 大写名称作为变量名:

getInnerHtml(), getXml(), XmlDocument5.方法的命令 必须 为动词或者是动词短语:

obj.getSomeValue()6.公有类的命名 必须 使用混合名称(mixedCase)命名。7.CSS 变量的命名 必须 使用其对应的相同的公共类变量。8.私有类的变量属性成员 必须 使用混合名称(mixedCase)命名,并前面下下划线(_)。例如:

9.变量如果设置为私有,则前面 必须 添加下划线。

this._somePrivateVariable = statement;

.通用的变量 必须 使用与其名字一致的类型名称:

setTopic(topic) // 变量 topic 为 Topic 类型的变量.所有的变量名 必须 使用英文名称。.变量如有较广的作用域(large scope),必须使用全局变量;此时可以设计成一个类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。.如果变量有其隐含的返回值,则避免使用其相似的方法:

getHandler(); // 避免使用 getEventHandler()

.公有变量必须清楚的表达其自身的属性,避免字义含糊不清,例如:

MouseEventHandler,而非 MseEvtHdlr。  请再次注意这条规定,这样做得的好处是非常明显的。它能明确的表达表达式所定义的含义。例如:   

dojo.events.mouse.Handler // 而非 dojo.events.mouse.MouseEventHandler

.类/构造函数 可以使用 扩展其基类的名称命名,这样可以正确、迅速的找到其基类的名称: EventHandler UIEventHandler MouseEventHandler  基类可以在明确描述其属性的前提下,缩减其命名:   MouseEventHandler as opposed to MouseUIEventHandler.

特殊命名规范

术语 “get/set” 不要和一个字段相连,除非它被定义为私有变量。前面加 “is” 的变量名 应该 为布尔值,同理可以为 “has”, “can” 或者 “should”。术语 “compute” 作为变量名应为已经计算完成的变量。术语 “find” 作为变量名应为已经查找完成的变量。术语 “initialize” 或者 “init” 作为变量名应为已经实例化(初始化)完成的类或者其他类型的变量。UI (用户界面)控制变量应在名称后加控制类型,例如: leftComboBox, TopScrollPane。复数必须有其公共的名称约定(原文:Plural form MUST be used to name collections)。带有 “num” 或者 “count” 开头的变量名约定为数字(对象)。重复变量建议使用 “i”, “j”, “k” (依次类推)等名称的变量。补充用语必须使用补充词,例如: get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end, etc.能缩写的名称尽量使用缩写。避免产生歧义的布尔变量名称,例如:  isNotError, isNotFound 为非法错误类建议在变量名称后加上 “Exception” 或者 “Error”。方法如果返回一个类,则应该在名称上说明返回什么;如果是一个过程,则应该说明做了什么。

文件

缩进请使用 4 个空白符的制表位。如果您的编辑器支持 文件标签_(file tags),请加添如下的一行使我们的代码更容易阅读:

// vim:ts=4:noet:tw=0:译注:老外用 VIM 编辑器比较多,此条可以选择遵循。

代码折叠必须看起来是完成并且是合乎逻辑的:

注:表达式的缩进与变量声明应为一致的。注:函数的参数应采用明确的缩进,缩进规则与其他块保持一致。

变量

变量必须在声明初始化以后才能使用,即便是 NULL 类型。 变量不能产生歧义。 相关的变量集应该放在同一代码块中,非相关的变量集不应该放在同一代码块中。 变量应该尽量保持最小的生存周期。 循环/重复变量的规范: 只有循环控制块的话,则必须使用 FOR 循环。 循环变量应该在循环开始前就被初始化;如使用 FOR 循环,则使用 FOR 语句初始化循环变量。 “do … while” 语句是被允许的。 “break” 和 “continue” 语句仍然允许使用(但请注意)。 条件表达式 应该尽量避免复杂的条件表达式,如有必要可以使用临时布尔变量。 The nominal case SHOULD be put in the “if” part and the exception in the “else” part of an “if” statement. 应避免在条件表达式中加入块。 杂项 尽量避免幻数(Magic numbers),他们应该使用常量来代替。 浮点变量必须指明小数点后一位(即使是 0)。 浮点变量必须指明实部,即使它们为零(使用 0. 开头)。

布局

普通代码段 应该 看起来如下:

Dojo Javascript 编程规范 规范自己的JavaScript书写

IF 语句 应该 看起来像这样:

FOR 语句 应该 看起来像这样:

WHILE 语句 应该 看起来像这样:

DO … WHILE 语句 应该 看起来像这样:

SWITCH 语句 应该 看起来像这样:

TRY … CATCH 语句 应该 看起来像这样:

单行的 IF ? ELSE,WHILE 或者 FOR 语句也 必须 加入括号,不过他们可以这样写:if (condition){ statement; }while (condition){ statement; }for (intialization; condition; update){ statement; }

空白

操作符 建议 使用空格隔开(包括三元操作符)。 下面的关键字 避免使用 空白隔开: break catch continue do else finally for function (如果为匿名函数,例如:var foo = function(){}; ) if return switch this try void while with 下面的关键字必须使用空白隔开: case default delete function (如果为申明,例如:function foo(){}; ) in instanceof new throw typeof var 逗号(,) 建议 使用空白隔开。 冒号(:) 建议 使用空白隔开。 点(.) 在后部 建议 使用空白隔开。 点(.) 避免 在前部使用空白。 函数调用和方法 避免 使用空白,例如: doSomething(someParameter); // 而非 doSomething (someParameter) 逻辑块 之间使用空行。 声明 建议 对齐使其更容易阅读。

注释

生涩的代码就 没有必要 添加注释了,首先您需要 重写 它们。 所有的注释请使用英文。 从已解决的方案到未开发的功能,注释 必须 与代码相关。 大量的变量申明后 必须 跟随一段注释。 注释需要说明的是代码段的用处,尤其是接下来的代码段。 注释 没有必要 每行都添加。

文档

下面提供了一些基本的函数或者对象的描述方法:

总结(summary): 简短的表述此函数或者对象实现的目的描述(description): 对于此函数或者类的简短的描述返回(return): 描述此函数返回什么(并不包括返回类型)基本函数信息

对象函数信息

没有返回值描述

函数的声明

在有的情况下,对于函数的调用和声明是隐义(invisible)的。在这种情况下,我们没有办法在函数中加入说明等(供程序调用)。如果您遭遇了这种情况,您可以使用一个类来封装函数。

注:此此方法只能在函数没有初始化的参数情况下。如过不是,则它们会被忽略。

<h3>参数</h3><ol><li>简单类型   简单的类型的参数可以直接在函数参数定义中注释说明。[cc lang="javascript"]function(/*String*/ foo, /*int*/ bar)...可变类型参数  下面是几个修饰符供参考:&#; 可选参数… 说面参数范围不确定数组function(/*String&#;*/ foo, /*int...*/ bar, /*String[]*/ baz)...全局参数描述 如果你想增加一个描述,你可以将它们移至初始化块。基本信息格式为: *关键字* 描述字段 ( *key* Descriptive sentence)参数和变量的格式为: *关键字* ~*类型*~ 描述字段 ( *key* ~*type*~ Descriptive sentence)注: *关键字* 和 ~*类型*~ 可以使用任何字母和数字表述。

变量

由于实例变量、原型变量和外部变量的声明是一致的,所以有很多的方法声明、修改变量。具体的如何定义和定位应在变量最先出现的位置指明变量的名称、类型、作用域等信息。

对象中的变量注释

应使用和对象值和方法一致的标注方式,比如在他们声明的时候:

返回值

因为函数可以同时返回多个不同(类型)的值,所以应每个返回值之后加入返回类型的注释。注释在行内注释即可,如果所有的返回值为同一类型,则指明返回的类型;如为多个不同的返回值,则标注返回类型为”mixed”。

伪代码(有待讨论)

有时候您需要在函数或者类中添加对于此函数和类的功能性流程描述。如果您打算这样做,您可以使用 /*======== (= 字符最好出现 5 次或者更多),这样做的好处就是可以不用将这些东西加入代码(译注:原作者的意思可能为代码管理系统)。

这样看起来在 /*===== 和 =====*/ 会有非常长的一段注释,等待功能调整完毕以后就可以考虑是否删除。

原文链接: by):i.feelinglucky{at}gmail.com from

Javascript基础知识(一)核心基础语法与事件模型 一.Javascript核心基础语法1.Javascript是一门增加交互效果的编程语言,它最初由网景公司发明,最后提交给ECMA(欧洲计算机制造商协会),ECMA将Javascript标准

Javascript基础知识(二)事件 Event对象:(event对象是window对象的属性,当事件发生时,同时产生event对象,事件结束,event对象消失)IE中:window.event;//获取对象DOM中:argument[0];//获取对

Javascript基础知识(三)BOM,DOM总结 window对象:打开和关闭窗口:window.open()三个参数:1.载入新窗口的页面的URL2.新窗口的名字3.特性字符串和说明是否用新载入的页面替换当前载入的页面

标签: Dojo Javascript 编程规范 规范自己的JavaScript书写

本文链接地址:https://www.jiuchutong.com/biancheng/385648.html 转载请保留说明!

上一篇:Javascript this 关键字 详解

下一篇:Javascript基础知识(一)核心基础语法与事件模型(javascript零基础)

  • 法人能去税务局买票吗
  • 缴纳以前年度所得税怎么做分录
  • 预算资产负债表
  • 分公司是否可以参与投标招标
  • 劳务报酬增值税和个人所得税都要交吗
  • 个体户2019年定额征收额度是多少
  • 出口企业免抵税额在增值税申报表填写附表5
  • 支票的填写前应检查有哪些内容
  • 税控发票包括哪些
  • 股东货币出资比例
  • 实收资本属于会计科目吗
  • 收到投资分红要缴纳企业所得税吗?
  • 员工私人车通行费能抵进项税吗
  • 汽车修理费入账
  • 工程预缴税款几个点
  • 关于土地增值税若干问题的通知
  • 非学历教育培训费发票
  • 非专利技术属于无形资产吗?
  • 学校收到教育局拨款怎么做账
  • 企业股权平价转让涉及哪些税费
  • 建筑成本百分比如何确定?
  • 只有原始凭证无入库单跟发票如何记账?
  • 工程类劳务发票
  • 母公司代发工资如何处理
  • 利润分配在利润表中如何列示
  • 对境外捐赠的相关政策
  • 新公司第一年
  • 无法卸载系统更新 backup
  • 鸿蒙系统垃圾清理
  • 商品售价有规定吗
  • 生产车间工人发放福利
  • c++ 库文件
  • 企业购买银行理财
  • mac如何恢复到出厂系统版本
  • 企业对外捐赠扣除标准有哪些?
  • 公司股东内部转让需要人脸识别吗
  • Sublime Text v4.0(4143)破解方法
  • php如何提高程序运行效率
  • 借入长期借款的利息
  • 不得税前扣除的项目有哪些
  • 企业缴纳残保金规定
  • 应收账款为负数正常吗为什么
  • 职工教育经费的计提比例是多少
  • uniapp面试题必问的坑
  • 其他收益在资产负债表哪点
  • 帝国cms使用手册
  • 股权转让怎样能不交税 认缴
  • 工业企业生产费用最基本的分类是
  • 企业税金总额包括什么
  • mysql innodb存储结构
  • 企业汇兑收益所得税税率
  • 库房食品过期报告怎么写
  • 企业收入确认的文章
  • 销项发票属于哪个科目
  • 改变记帐方式的原因
  • 开红字发票如何调整收入?
  • 存货非正常损失进项税额转出分录
  • 小企业研发费用放在哪个科目
  • 企业处置子公司
  • 企业会计准则解释第16号
  • 哪些资产减值可以转回哪些不可转回
  • ubuntu系统中文
  • win10系统无法安装打印机句柄无效
  • qqprotect.exe是什么进程?qqprotect.exe怎么禁止自动启动?
  • iso镜像怎么装
  • window10电话
  • 如何将iPhone照片导入电脑
  • 重装系统后没声音怎么解决win7
  • igfxem module是什么程序
  • linux用ssh登录不进去
  • opengl裁剪平面
  • 拼图java代码
  • unity调用c++封装的dll
  • javascript的
  • jquery 延迟对象
  • 怎么用bootstrap搭建网站
  • 矿产资源税的计税依据
  • 失业保险金领取成功
  • 下岗的党员需要交党费吗
  • 可以在企业所得税税前扣除的税金
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设