A.1 缩进
// 4个空格的层级缩进
if (true) {
doSomething();
}
A.2 行的长度
// 每行限于80个字符,超出则在运算符后换行,缩进2个层级(8个空格)
doSomething(argument1, argument2, argument3, argument4,
argument5);
A.3 原始值
// 字符串使用双引号及长字符串的链接
var name = "Nicholas",
longStr = "this is a long string you should " +
"change another line."; // 数字
var count = 10,
price = 10.50,
num = 1e10; // null,表示或期望是对象
var person = null; function getPerson () {
if (condition) {
return new Person("Nicholas");
} else {
return null;
}
}
// undefined 变量声明而未赋值的状态,避免使用;
var variable = undefined // dont do this
if (typeof variable === "undefined") {
// do like this
}
A.4 运算符间距
// 运算符前后使用一个空格来保持表达式的整洁
var found = (value[i] === item); if (found && (count > 10)) {
doSomething();
} for (i = 0; i < count; i++) {
process(i);
}
A.5 对象直接量
// 层级缩进、语段前后空行、函数前后空行、属性不加引号、冒号紧跟其后
var object = {
key1: value1,
key2: value2, func: function () {
// a function to do something
}, key3: value3
}
A.7 注释
// 单行注释1
if (condition) { // 如果代码执行到这里,表明通过了安全检查
doSomething();
} // 单行注释2
var result = result1 + result2; // result1, result2应当是整数 // 多行注释
function getResult (arg1, arg2) { /*
* @para arg1
* @para arg2
*/
doSomething();
}
A.8 变量声明
// 整齐、未初始化变量放最后
var count = 10,
name = "Nicholas",
found = false,
empty;
A.9 函数声明
// 标准式
function sum(arg1, arg2) {
return arg1 + arg2;
} // 道格拉斯推荐式(变量引用式)
var sum = function (arg1, arg2) {
return arg1 + arg2;
}; // 立即调用式
var value= (function() { // 函数体 return {
message: "Hi"
};
}());
A.10 命名
// 普通变量用小驼峰命名法,不要使用下划线,不要用动词开头
var accountNumber = "8341"; // 函数命名用动词开头表意
function getPerson() {
// return a person object
} // 构造函数用名词开头且首字母大写
function Person(name) {
this.name = name;
} // 常量
var TOTAL_COUNT = 10; // 私有变量
var object = {
_count: 10, getCount: function() {
return this._count;
}
};
A.11 严格相等及表达式赋值
// 通过相等判断赋予布尔值
var flag = (a === b);
A.12 三元操作符
// 三元操作符应当仅仅用在条件赋值语句中
var value = (condition ? value1 : value2); // dont do like this, do it use if instead
condition ? doSomething() : doSomethingElse();
A.13 语句示例
// if
if (condition) {
statements
} // for
var i, len;
for (i = , len = ; i < len; i++) {
// code
} var prop;
for (prop in object) { if (object.hasOwnProperty(prop)) {
// code
}
} // while
while (condition) {
statements
} // switch
switch (value) {
case :
statements;
break; case : // falls through
case :
statements;
break; // no default
}
A.14 使用严格模式吧,在一个函数里
(function() {
"use strict"; // code
}());
JavaScript 编码风格指南的更多相关文章
-
JavaScript编码风格指南(中文版)
前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...
-
《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值
记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...
-
Airbnb JavaScript 编码风格指南(2018年最新版)
原网址 : https://segmentfault.com/a/1190000013040555 类型 基本类型:直接存取 string number boolean null undefined ...
-
JavaScript编码规范指南
前言 本文摘自Google JavaScript编码规范指南,截取了其中比较容易理解与遵循的点作为团队的JavaScript编码规范. JavaScript 语言规范 变量 声明变量必须加上 var ...
-
一些达成共识的JavaScript编码风格约定
如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...
-
一些达成共识的JavaScript编码风格约定【转】
如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...
-
R 语言编码风格指南
R 语言是一门主要用于统计计算和绘图的高级编程语言.这份 R 语言编码风格指南旨在让我们的 R代码更容易阅读.分享和检查.以下规则系与 Google 的 R 用户群体协同设计而成. 概要: R编码风格 ...
-
来自 Google 的 R 语言编码风格指南
来自 Google 的 R 语言编码风格指南R 语言是一门主要用于统计计算和绘图的高级编程语言. 这份 R 语言编码风格指南旨在让我们的 R 代码更容易阅读.分享和检查. 以下规则系与 Google ...
-
Objective-C 编码风格指南
本文转自:[Objective-C 编码风格指南 | www.samirchen.com][2] ## 背景 保证自己的代码遵循团队统一的编码规范是一个码农的基本节操,能够进入一个有统一编码规范的团队 ...
随机推荐
-
DOS命令详解
DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...
-
【LA3523】 Knights of the Round Table (点双连通分量+染色问题?)
Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in distress ...
-
JAVA线程示范之一种
线程有两种方法生成,这是其中的一种.. MyRunnable.java public class MyRunnable implements Runnable { public void run() ...
-
【UOJ#311】【UNR #2】积劳成疾(动态规划)
[UOJ#311][UNR #2]积劳成疾(动态规划) UOJ Solution 考虑最大值分治解决问题.每次枚举最大值所在的位置,强制不能跨过最大值,左右此时不会影响,可以分开考虑. 那么设\(f[ ...
-
自学工业控制网络之路1.3-典型的现场总线介绍FF
返回 自学工业控制网络之路 自学工业控制网络之路1.3-典型的现场总线介绍FF 1994年6月,ISP和WORLDFIP合并成立现场总线基金会FF.1998年,FF基金会开发了HSE 10/100Mb ...
-
腾讯Ocr文字识别
简述 上篇文章记录了百度Ocr的两种模式用法,接下来这篇文章开始记录腾讯Ocr的使用方法.腾讯Ocr的通用印刷体识别模式使用比较简单,直接接入sdk即可,但手写体的识别相对比较麻烦,需要自己post表 ...
-
WebSocket的Cookie问题(转)
问题:我用Nginx作静态服务器,Node.js监听另外端口作WebSocket服务器,客户端创建实例时,如果origin和host不一样的话,req实例的headers中没有cookie… ###解 ...
-
如何在Windows 10安装和使用Linux的Bash shell
转载自:百度经验 Windwos 10 的周年更新为开发人员提供一个大的新功能:一个完整的,基于Ubuntu的Bash shell中,可以直接在Windows上运行Linux软件. 这使得“Linux ...
-
js同步 异步 运行机制
需要知道的那些事: 1.JS是单线程的(为什么?因为能提高效率.作为浏览器脚本语言,js的主要用途是与用户互动,操作DOM.而这也就决定它只能为单线程,否则会带来很复杂的同步问题),也就是说无法同时执 ...
-
epoll+socket的简单测试例子
server: #include <sys/socket.h> #include <sys/epoll.h> #include <netinet/in.h> #in ...