JavaScript编码规范
1 代码风格
1.1 结构语句
[强制] 不得省略语句结束的分号。
[强制] 在 if / else / for / do / while 语句中,即使只有一行,也不得省略块 {...}。
示例:
// good
if (condition) {
callFunc();
} // bad
if (condition) callFunc();
if (condition)
callFunc();
1.2 命名
[强制] 变量 使用 Camel命名法。
示例:
var loadingModules = {};
[强制] 常量 使用 全部字母大写,单词间下划线分隔 的命名方式。
示例:
var HTML_ENTITY = {};
[强制] 函数 使用 Camel命名法。
示例:
function stringFormat(source) {
}
[强制] 函数的 参数 使用 Camel命名法。
示例:
function hear(theBells) {
}
[强制] 类 使用 Pascal命名法。
示例:
function TextNode(options) {
}
[强制] 类的 方法 / 属性 使用 Camel命名法。
示例:
function TextNode(value, engine) {
    this.value = value;
    this.engine = engine;
}
TextNode.prototype.clone = function () {
    return this;
};
[强制] 枚举变量 使用 Pascal命名法,枚举的属性 使用 全部字母大写,单词间下划线分隔 的命名方式。
示例:
var TargetState = {
    READING: 1,
    READED: 2,
    APPLIED: 3,
    READY: 4
};
[强制] 命名空间 使用 Camel命名法。
示例:
equipments.heavyWeapons = {};
[强制] 由多个单词组成的缩写词,在命名中,根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致。
示例:
function XMLParser() {
}
function insertHTML(element, html) {
}
var httpRequest = new HTTPRequest();
[强制] 类名 使用 名词。
示例:
function Engine(options) {
}
[建议] 函数名 使用 动宾短语。
示例:
function getStyle(element) {
}
[建议] boolean 类型的变量使用 is 或 has 开头。
示例:
var isReady = false;
var hasMoreCommands = false;
2 语言特性
2.1 变量
[强制] 变量在使用前必须通过 var 定义。
解释:
不通过 var 定义变量将导致变量污染全局环境。
示例:
// good
var name = 'MyName'; // bad
name = 'MyName';
2.2 面向对象
[强制] 创建对象使用构造函数模式和原型模式组合方式。
示例:
function Person(name, age) {
  this.name = name;
  this.age = age;
}
Person.prototype.sayName = function () {
    alert(this.name);
};
var person1 = new Person('Tom', 29);
var person2 = new Person('Greg', 27);
person1.sayName();
alert(person2.age);
[强制] 类的继承使用寄生组合式继承。
示例:
function inheritPrototype(subType, superType) {
    function F() {}
    F.prototype = superType.prototype;
    var prototype = new F();
    prototype.constructor = subType;
    subType.prototype = prototype;
}
function SuperType(name) {
    this.name = name;
    this.colors = ['red', 'blue', 'green'];
}
SuperType.prototype.sayName = function() {
    console.log(this.name);
};
function SubType(name, age) {
    SuperType.call(this, name);
    this.age = age;
}
inheritPrototype(SubType, SuperType);
SubType.prototype.sayAge = function() {
    console.log(this.age);
};
var instance1 = new SubType('Nicholas', 29);
instance1.colors.push('black');
console.log(instance1.colors);
instance1.sayName();
instance1.sayAge();
var instance2 = new SubType('Greg', 27);
console.log(instance2.colors);
instance2.sayName();
instance2.sayAge();
JavaScript编码规范的更多相关文章
- JavaScript编码规范指南
		
前言 本文摘自Google JavaScript编码规范指南,截取了其中比较容易理解与遵循的点作为团队的JavaScript编码规范. JavaScript 语言规范 变量 声明变量必须加上 var ...
 - 【转发】网易邮箱前端技术分享之javascript编码规范
		
网易邮箱前端技术分享之javascript编码规范 发布日期:2013-11-26 10:06 来源:网易邮箱前端技术中心 作者:网易邮箱 点击:533 网易邮箱是国内最早使用ajax技术的邮箱.早在 ...
 - 网易前端JavaScript编码规范
		
在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...
 - JavaScript编码规范[百度]
		
JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 ...
 - 网易邮箱前端Javascript编码规范:基础规范
		
在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...
 - JavaScript 编码规范(中文/Airbnb公司版)
		
Airbnb 是一家位于美国旧金山的公司,本文是其内部的 JavaScript编码规范,写得比较全面,在 Github 上有 16,686 + Star,3,080 + fork,前端开发人员可参考. ...
 - 学习一份百度的JavaScript编码规范
		
JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 2.4 注释 2.4.1 单行注 ...
 - 《编写可维护的JavaScript》——JavaScript编码规范(一)
		
缩进层级 代码如何缩进通常有两种主张: 使用制表符缩进 每一个缩进层级都用单独的制表符表示.这种方法的主要缺点是:系统对制表符的解释不一致.这些差异会导致不同的开发者对同一段代码有不同的看法的,这正是 ...
 - javascript编码规范[原创]
		
一些命名规范书或js书命名规范章节,喜欢将命名规范跟语法混在一块例如: 1.使用“var”定义.初始化变量防止产生全局变量,多变量一块定义使用“,”(本身这种方式就很有争议). 2.结尾必加“;”防止 ...
 - Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!
		
1. 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对JavaScript设 ...
 
随机推荐
- JavaScript 学习笔记——cssText
			
平常编写代码,更改一个元素样式的时候,自己都是用 obj.style.width = "200px"; obj.style.position = "absolute&qu ...
 - 忘记Windows7登陆密码解决办法
			
忘记 Windows7 的登陆密码,解决这个问题的思路就是替换 system32 下的 Magnify.exe . 可以从 WindowsPE 启动,到 C:\windows\system32 下. ...
 - oracle undo回滚段详解
			
1.Undo是干嘛用的? 在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个 ...
 - 使用sublimehighlight 将文本 转化html
			
a = "aaa" b = "bbb" c = "ccc" final = a + b + c print final import sys ...
 - sublime Text 3 安装emmet
			
Emmet简介 Emmet是一个支持大部分流行文本编辑器的插件,能够极大得提高编写HTML和CSS的工作效率. 官网:http://emmet.io/ 在Sublime Text 3中安装 前提Sub ...
 - EXT.NET 使用总结(3)--动态图表
			
动态生成雷达图--Radar 效果图: aspx页面代码: <ext:Panel ID="ResultPanel" Border="true" runat ...
 - 字符串和datatime.time类型转为秒
			
前言 折腾了好久,还是得养成看帮助文档和help的习惯 知识 datetime模块中定义的类 datetime.date 表示日期的类,常用属性:year, month, day datetime.t ...
 - ionic build Android错误记录未解决
			
1.try itcordova -v cordova create testing cd testing cordova plugin add cordova-plugin-sim cordova p ...
 - Unity 依赖注入之一
			
在项目中引入Unity,建立一个接口IWork跟一个继承IWork接口的Work类 public interface IMyWork { void Work(); } public class MyW ...
 - mac osx 上面部署Django项目  apache+mysql+mod_wsgi
			
1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...