JavaScript编写风格指南 (一)
//参考《编写可维护的Javascript》
一:缩进
// 第一行的层级由4个空格组成,避免使用制表符tab进行缩进
//好的写法
if (true) {
doSomething();
}
二:行的长度
// 每行长度不应该超过80个字符。如果一行对于80个字符,应当在一个运算符(逗号,加号符)
// 后换行。下一行应当增加两级缩进
//好的写法
doSomething(argument1, argument2, argument3, argument4,
argument5);
三:原始值
// 字符串应当使用双引号(避免使用单引号)且保持一行。避免在字符串中使用斜线另起一行
//好的写法
var name = "M";
//不好的写法
var name = 'M';
//不好的写法:字符串结束之前换行
var longString = "Here's the sorry, of a man \
named Brady.";
// 数字应当使用十进制整数,科学计数法表示整数,十六进制整数,或者十进制浮点小数,
// 小数点前后应当至少保留一位数字。避免使用八进制直接量
//好的写法
var count = 10;
var price = 10.00;
var price = 10.0;
var num = 0x23;
//不好的写法
var price = 10.;
var price = .1;
var price = 010;
特殊值null除了下述情况下应当避免使用
// 1.用来初始化一个变量,这个变量可能被赋值为一个对象
// 2.用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
// 3.当函数的参数期望是对象时,被用作参数传入
// 4.当函数的返回值期望是对象时,被用作返回值传出
Example:
//好的写法
var person = null;
//好的写法
function getPerson() {
if (condition) {
return new Person("M");
} else {
return null;
}
}
//好的写法
var person = getPerson();
if (person !== null) {
doSomething();
}
//不好的写法:和一个未被初始化的变量比较
var person;
if (person != null) {
doSomething();
}
//不好的写法:通过测试判断某个参数是否被传递
function doSomething(arg1, arg2, arg3, arg4) {
if (arg4 !== null) {
doSomething();
}
}
//避免使用特殊值 undefined 判断一个变量是否定义应当使用typeof操作符
//好的写法
if (typeof variable == "undefined") {
//do something;
}
//不好的写法:使用了undefined直接量
if (variable == undefined) {
// do something;
}
四:运算符间距
// 三元运算符前后必须使用一个空格来保持表达式的整洁。
// 操作符包括赋值运算符和逻辑运算符
//好的写法
var found = (value[i] === false);
//好的写法
if (found && (count > 10)) {
doSomething();
}
//好的写法
for (i = 0; i < count; i++) {
process(i);
}
//不好的写法:丢失了空格
var found = (varlues[i]===false);
if (found&&(count>10)) {
doSomething();
}
for (i=0; i<count; i++) {
process(i);
}
五:括号间距
// 当使用括号时,紧接左括号右括号之前不应该有空格
//好的写法
var found = (varlues[i] === false);
//好的写法
if (found && (count > 10)) {
doSomething();
}
//好的写法
for (i = 0; i < count; i++) {
process(i);
}
//不好的写法:左括号之后有额外的空格
var found = ( varlues[i] === item);
六:对象直接量
// 对象直接量应当使用下列格式
// 1.起始左花括号应当使用如下格式
// 2.每个属性的名值对应保持一个缩进,第一个属性应当在左花括号后另起一行
// 3.每个属性的名值对应当使用不含引号的属性名,气候紧跟一个冒号(之前不含空格),而后是值
// 4.倘若属性值是函数类型,函数体应当在属性名之下另起一行,而且其前后均应保留一个空行。
// 5.一组相关的属性前后可以插入空行以提升代码的可读性
// 6.结束的右花括号应当独占一行
Example:
//好的写法
var object = {
key1: value1,
key2: value2,
func: function() {
//do something
},
key3: value3
};
//不好的写法:不恰当的缩进
var object = {
key1: value1,
key2: value2
};
//不好的写法:函数体周围缺少空行
var object = {
key1: value1,
key2: value2,
func: function() {
//do something
},
key3: value3
};
当对象字面量作为函数参数时,如果值是变量,起始花括号应当同函数名在同一行。
所有其余先列出的规则同样适用。
//好的写法
doSomething({
key1: value1,
key2: value2
});
//不好的写法:所有代码在一行上
doSomething({ key1: value1, key2: value2 });
JavaScript编写风格指南 (一)的更多相关文章
- JavaScript编写风格指南 (三)
七(七):严格模式 // 严格模式应当仅限在函数内部使用,千万不要在全局使用 //不好的写法:全局使用严格模式"user strict"; function doSomething ...
- JavaScript编写风格指南 (二)
七:注释 // 频繁的使用注释有助于他人理解你的代码// 1.代码晦涩难懂// 2.可能被误认为是错误的代码// 3.必要但不明显的针对特定浏览器的代码// 4.对于对象,方法或者属性,生成文档是有必 ...
- 13点值得我们注意的谷歌的JavaScript编写风格
对于编写有效的JavaScript来说,这些并不是硬性的.快速的规则,而只是在源文件中维护一致的.吸引人的样式选择的规则.这对于JavaScript来说尤其有趣,它是一种灵活且多变的语言,允许多种风格 ...
- Google JavaScript代码风格指南
Google JavaScript代码风格指南 修正版本 2.28 Aaron Whyte Bob Jervis Dan Pupius Eric Arvidsson Fritz Schneider R ...
- Protocol buffers编写风格指南
原文链接:https://developers.google.com/protocol-buffers/docs/style Style Guide 本文说明了.proto文件的编写风格指南.遵循这些 ...
- JavaScript编码风格指南(中文版)
前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...
- 《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值
记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...
- JavaScript 代码风格指南
一.基本格式 缩进 建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换 分号 不要省略分号,防止ASI(自动插入分号)错误 行宽 每行代码不超过80个字符,过长应该用操作符手动断行 断行 ...
- Airbnb JavaScript 编码风格指南(2018年最新版)
原网址 : https://segmentfault.com/a/1190000013040555 类型 基本类型:直接存取 string number boolean null undefined ...
随机推荐
- 小程序swiper组件高度自适应【转载】
最近在做小程序开发,复制官方文档上的swiper组件实测后发现,图片不能自适应.网上找了几个版本测试都发现存在一些小问题,目前这个版本本人实测是最好用的.记录一下,方便日后使用. 感谢原创大神的帮助, ...
- Hyperledger Fabric的一些密码学常识
Hash 哈希(Hash)算法主要作用是将一段任意长度的数据,经过计算转换成一段定长的数据. 这种算法的特性是:几乎不能通过Hash的结果推导出原文.并且几乎没有可能找到两个不同的信息,对两个信息进行 ...
- java 中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类. 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动). 显 ...
- Notes of Daily Scrum Meeting(12.16)
最近好几门课的大作业都到了要截止的时候了,好多天队员们都抽不出来时间做软工的项目了,这样确实 和我们的计划出入很大,不过希望老师谅解,三门课程设计确实压力很大. 今天的团队任务总结如下: 团队成员 今 ...
- Opendaylight的Carbon(碳)版本安装
Opendaylight Carbon(碳)版本安装 1.更新源 sudo apt-get update sudo apt-get upgrade 2.安装JDK1.8 sudo apt-get in ...
- wia驱动扫描仪
.net wia驱动扫描仪 通过各种途径,将当前比较流行的驱动扫描仪封装成了一个简单实用的class,调用扫描仪时,只需要重新创建个对象即可,代码如下: using System;using Syst ...
- ElasticSearch 2 (34) - 信息聚合系列之多值排序
ElasticSearch 2 (34) - 信息聚合系列之多值排序 摘要 多值桶(terms.histogram 和 date_histogram)动态生成很多桶,Elasticsearch 是如何 ...
- beta yz 5
031602111 傅海涛 1.今天进展 接口微调修正 2.存在问题 文档转化太久 3.明天安排 完成全部接口的交互 4.心得体会 文档转化需要好好优化 031602115 黄家雄 1.界面优化 2. ...
- CMS垃圾收集器与G1收集器
1.CMS收集器 CMS收集器是一种以获取最短回收停顿时间为目标的收集器.基于“标记-清除”算法实现,它的运作过程如下: 1)初始标记 2)并发标记 3)重新标记 4)并发清除 初始标记.从新标记这两 ...
- [转帖学习]Oracle的 SYS_CONTEXT 函数简介
Oracle的 SYS_CONTEXT 函数简介 https://blog.csdn.net/IndexMan/article/details/48606369 1.什么是SYS_CONTEXT? S ...