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. 洛谷P2085 最小函数值(minval)

    P2085 最小函数值(minval) 218通过 487提交 题目提供者该用户不存在 标签堆高级数据结构 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 有n个函数, ...

  2. PAT1015. Reversible Primes

    //题的理解是n在基数b中的的表示中,正序和逆序值都是素数,但是其实可直接判断n,因为n在b中的正常序列值就是再换成十进制就是n,但是不A:不知道为什么 用笨方法,先把n展开成b进制,正常计算其实是翻 ...

  3. leetcode 107

    107. Binary Tree Level Order Traversal II Given a binary tree, return the bottom-up level order trav ...

  4. Android IOS WebRTC 音视频开发总结(五八)-- 图文解说视频直播原理

    本文主要介绍rtmp&hls视频直播原理,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 现在视频直播很火 ...

  5. 新手浅谈C#Task异步编程

    Task是微软在.net framework 4.0发布的新的异步编程的利器,当然4.5新增了async.await,这儿我们先说Task相关. 在实际编程中,我们用的较多的是Task.Task.Fa ...

  6. iOS键盘类型

    一.键盘风格 UIKit框架支持8种风格键盘. typedef enum { UIKeyboardTypeDefault,                // 默认键盘:支持所有字符 UIKeyboa ...

  7. C puzzles详解【31-33题】

    第三十一题 The following is a simple C program to read and print an integer. But it is not working proper ...

  8. [视频]MAC OS 技巧之如何更新及重装MAC系统

    mac os是当今最好用的桌面操作系统,但再好的系统也有新版本发布的一天,或者被极客的你尝试各种设置而配置混乱了,这时我们就要进行系统更新或者重装了. 系统更新 Mac OS有新版本推出时,会自动在A ...

  9. MongoDB数据库的主从配对与迁移示例

    数据中心在运行中有可能遇到各种硬件.电力.网络故障等问题,需要设计良好的系统来隔离,尽量减少对上层应用的影响,持续对外提供服务:一旦发生业务中断,也应尽快恢复.通过主从备份设计,在主应用系统发生故障时 ...

  10. asp.net实现md5加密方法详解

    MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文. 例如:明文为:abcdefg 通过一些列运算 得到 密文 7ac66c0f148de9519b8bd264312c4d64 它具有两个特 ...