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编码风格指南(中文版)

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

  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. oracle创建job权限

    grant create job to ja_ods; grant manage scheduler to ja_ods;

  2. linux配置tns

    .三个配置文件都是放在$ORACLE_HOME\network\admin目录下. .sqlnet.ora确定解析方式 .listener.ora上设SID_NAME,通常用于JDBC访问,对应的错误 ...

  3. 应用OpenCV进行OCR字符识别

    opencv自带一个字符识别的例子,它的重点不是OCR字符识别,而主要是演示机器学习的应用.它应用的是UCI提供的字符数据(特征数据). DAMILES在网上发布了一个应用OpenCV进行OCR的例子 ...

  4. 洛谷P2264 情书

    P2264 情书 88通过 971提交 题目提供者lin_toto 标签字符串 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 yyy快把题目改回来 噫 这题的题目好逗啊... 情书std ...

  5. WinDBG使用之线程

    ~* 查看所有线程 ~ 0 k 查看0号线程栈回溯

  6. 感受机房管理化繁为简-新款KVM使用心得

    感受机房管理化繁为简-新款KVM使用心得 一. 背景 随着网络应用的不断增多,各地机房服务器数量也随之增加,利用多传统主机切换器的方式已经无法满足目前这种区域广.设备多人员紧缺的现状,而且即使是使用了 ...

  7. [JFinal 1] JFinal和SSH中使用拦截器的对比

    导读:先前在做.NET项目时,拦截的功能主要是依靠缓存session来实现.当需要跳转到某个页面,使用某个功能查询一些数据时,会根据session中的用户值来判断是否已经正常登录,如果没有,则重定向到 ...

  8. wcscpy wcscpy_s strcpy strcpy_s的区别

    原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有NULL结束符的字符串赋值到以des ...

  9. spm3安装和使用

    readme : 因为我在在spm3中主要用到的是spm build这个命令,因此本文简单的介绍一下如何安装spm3和使用其中的spm build命令 一.安装 1.安装nodejs 直接去官网下载n ...

  10. css遇到的问题

    1.屏幕三部分自适应居中?(js没奏效) 2.背景透明内容也透明?