JavaScript 编码风格指南

时间:2021-01-01 01:22:05

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 编码风格指南的更多相关文章

  1. JavaScript编码风格指南&lpar;中文版&rpar;

    前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...

  2. 《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值

    记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...

  3. Airbnb JavaScript 编码风格指南(2018年最新版)

    原网址 :  https://segmentfault.com/a/1190000013040555 类型 基本类型:直接存取 string number boolean null undefined ...

  4. JavaScript编码规范指南

    前言 本文摘自Google JavaScript编码规范指南,截取了其中比较容易理解与遵循的点作为团队的JavaScript编码规范. JavaScript 语言规范 变量 声明变量必须加上 var  ...

  5. 一些达成共识的JavaScript编码风格约定

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

  6. 一些达成共识的JavaScript编码风格约定【转】

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

  7. R 语言编码风格指南

    R 语言是一门主要用于统计计算和绘图的高级编程语言.这份 R 语言编码风格指南旨在让我们的 R代码更容易阅读.分享和检查.以下规则系与 Google 的 R 用户群体协同设计而成. 概要: R编码风格 ...

  8. 来自 Google 的 R 语言编码风格指南

    来自 Google 的 R 语言编码风格指南R 语言是一门主要用于统计计算和绘图的高级编程语言. 这份 R 语言编码风格指南旨在让我们的 R 代码更容易阅读.分享和检查. 以下规则系与 Google ...

  9. Objective-C 编码风格指南

    本文转自:[Objective-C 编码风格指南 | www.samirchen.com][2] ## 背景 保证自己的代码遵循团队统一的编码规范是一个码农的基本节操,能够进入一个有统一编码规范的团队 ...

随机推荐

  1. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

  2. 【LA3523】 Knights of the Round Table (点双连通分量&plus;染色问题?)

    Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in distress ...

  3. JAVA线程示范之一种

    线程有两种方法生成,这是其中的一种.. MyRunnable.java public class MyRunnable implements Runnable { public void run() ...

  4. 【UOJ&num;311】【UNR &num;2】积劳成疾(动态规划)

    [UOJ#311][UNR #2]积劳成疾(动态规划) UOJ Solution 考虑最大值分治解决问题.每次枚举最大值所在的位置,强制不能跨过最大值,左右此时不会影响,可以分开考虑. 那么设\(f[ ...

  5. 自学工业控制网络之路1&period;3-典型的现场总线介绍FF

    返回 自学工业控制网络之路 自学工业控制网络之路1.3-典型的现场总线介绍FF 1994年6月,ISP和WORLDFIP合并成立现场总线基金会FF.1998年,FF基金会开发了HSE 10/100Mb ...

  6. 腾讯Ocr文字识别

    简述 上篇文章记录了百度Ocr的两种模式用法,接下来这篇文章开始记录腾讯Ocr的使用方法.腾讯Ocr的通用印刷体识别模式使用比较简单,直接接入sdk即可,但手写体的识别相对比较麻烦,需要自己post表 ...

  7. WebSocket的Cookie问题&lpar;转&rpar;

    问题:我用Nginx作静态服务器,Node.js监听另外端口作WebSocket服务器,客户端创建实例时,如果origin和host不一样的话,req实例的headers中没有cookie… ###解 ...

  8. 如何在Windows 10安装和使用Linux的Bash shell

    转载自:百度经验 Windwos 10 的周年更新为开发人员提供一个大的新功能:一个完整的,基于Ubuntu的Bash shell中,可以直接在Windows上运行Linux软件. 这使得“Linux ...

  9. js同步 异步 运行机制

    需要知道的那些事: 1.JS是单线程的(为什么?因为能提高效率.作为浏览器脚本语言,js的主要用途是与用户互动,操作DOM.而这也就决定它只能为单线程,否则会带来很复杂的同步问题),也就是说无法同时执 ...

  10. epoll&plus;socket的简单测试例子

    server: #include <sys/socket.h> #include <sys/epoll.h> #include <netinet/in.h> #in ...