javascript: Javascript 风格向导(终结)


  继续前两篇,这篇作为终结篇。
Blocks
? 有{}的代码,我们换行处理。
// bad
if (test)
return false;
// good
if (test) return false;
// good
if (test) {
return false;
}
// bad
function() { return false; }
// good
function() {
return false;
}
Comments
? 对于多行注释使用/**  ... */。包含描述信息、参数类型和返回值。
// bad
// make() returns a new element
// based on the passed in tag name
//
// @param <String> tag
// @return <Element> element
function make(tag) {
// ...stuff...
return element;
}
// good
/**
* make() returns a new element
* based on the passed in tag name
*
* @param <String> tag
* @return <Element> element
*/
function make(tag) {
// ...stuff...
return element;
}
? 对于单行注释使用//。单行注释单独放置在一个新行上。在注释前面放置一个空行。
// bad
var active = true; // is current tab
// good
// is current tab
var active = true;
// bad
function getType() {
console.log('fetching type...');
// set the default type to 'no type'
var type = this._type 'no type';
return type;
}
// good
function getType() {
console.log('fetching type...');
// set the default type to 'no type'
var type = this._type 'no type';
return type;
}
? 对于一些问题,注释前加FIXME或TODO,这样将快速帮助开发者快速明白代码意图。
? 使用 // FIXME: 注释问题
function Calculator() {
// FIXME: shouldn't use a global here
total = 0;
return this;
}
? 使用 // TODO: 注释问题的解决方案
function Calculator() {
// TODO: total should be configurable by an options param
this.total = 0;
return this;
}
Type Casting & Coercion
? 在声明之前执行强制类型转换。
? 字符串
// => this.reviewScore = 9;
// bad
var totalScore = this.reviewScore + '';
// good
var totalScore = '' + this.reviewScore;
// bad
var totalScore = '' + this.reviewScore + ' total score';
// good
var totalScore = this.reviewScore + ' total score';
? 对于数字转换,使用parseInt,而且要带着类型转换的基数。
? 如果parseInt成为你的瓶颈,处于性能原因,需要你使用“位移”操作。那么请写下注释解释你这样做的原因。
var inputValue = '4';
// bad
var val = new Number(inputValue);
// bad
var val = +inputValue;
// bad
var val = inputValue >> 0;
// bad
var val = parseInt(inputValue);
// good
var val = Number(inputValue);
// good
var val = parseInt(inputValue, 10);
// good
/**
* parseInt 使我的代码变慢.
* 为了提高速度,使用位移操作让字符串强制转化为数字。
*/
var val = inputValue >> 0;
? 布尔
var age = 0;
// bad
var hasAge = new Boolean(age);
// good
var hasAge = Boolean(age); 本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20130710/39007.html

时间: 2024-09-08 13:56:34

javascript: Javascript 风格向导(终结)的相关文章

当前流行的JavaScript代码风格指南_javascript技巧

JavaScript 没有一个权威的编码风格指南,取而代之的是一些流行的编码风格: 复制代码 代码如下: Google的JavaScript风格指南(以下简称Google) http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml NPM编码风格(以下简称NPM) https://npmjs.org/doc/coding-style.html Felix的Node.js风格指南(以下简称Node.js) http:

JavaScript编码风格指南(中文版)_javascript技巧

前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定了如何编写高水准的代码.本指南来自于<编写可维护的JavaScript>这本书,基于"Java语言编码规范"和Crockford的JavaScript编程规范,还有Nicbolas的一些个人经验和喜好.写作本文旨在加深自己印象,也为了更多人的了解到JS编码风格,提高自己的编码质

javascript: Javascript 风格向导

序 大部分针对Javascript最合理的方法归纳.类型? 原始类型:我们可以直接使用值. ο string ο number ο boolean ο null ο undefinedSearchIndexvar foo = 1,bar = foo;bar = 9;console.log(foo, bar); // => 1, 9SearchIndex?   复合类型:我们通过`引用`对值进行间接访问. ο object ο array ο functionSearchIndexvar foo

javascript: Javascript 风格向导(续)

序 我好长时间没有在推荐栏里出现了,看来上一篇反响不错,故再续上篇.Properties? 当访问属性的时候,我们使用点(.)操作符. var luke = {jedi: true,age: 28};// badvar isJedi = luke['jedi'];// goodvar isJedi = luke.jedi; ? 当以变量的方式访问属性的时候,用下标符号([]).--除非特殊需求,否则尽量避免使用obj[variable]的方式进行属性访问. var luke = {jedi: t

JavaScript代码风格要素

1920年,由威廉·斯特伦克(William Strunk jr .)撰写的<英语写作手册:风格的要素(The Elements of Style)>出版了,这本书列举了7条英文写作的准则,过了一个世纪,这些准则并没有过时.对于工程师来说,你可以在自己的编码风格中应用类似的建议来指导日常的编码,提高自己的编码水平. 需要注意的是,这些准则不是一成不变的法则.如果违背它们,能够让代码可读性更高,那么便没有问题,但请特别小心并时刻反思.这些准绳是经受住了时间考验的,有充分的理由说明:它们通常是正确

JavaScript编程风格指南

介绍 作者根据Robert C. Martin<代码整洁之道>总结了适用于JavaScript的软件工程原则<Clean Code JavaScript>. 本文是对其的翻译. 不必严格遵守本文的所有原则,有时少遵守一些效果可能会更好,具体应根据实际情况决定.这是根据<代码整洁之道>作者多年经验整理的代码优化建议,但也仅仅只是一份建议. 软件工程已经发展了50多年,至今仍在不断前进.现在,把这些原则当作试金石,尝试将他们作为团队代码质量考核的标准之一吧. 最后你需要知道

javascript:Javascript排名

<html><head><meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 "><title> Javascript 排名 www.cxybl.com</title><style type="text/css"></style></head><body>&

[JavaScript]JavaScript高级之词法作用域和作用域链

主要内容: 分析JavaScript的词法作用域的含义 解析变量的作用域链 变量名提升时什么 一.关于块级作用域         说到JavaScript的变量作用域,与咱们平时使用的类C语言不同. 例如C#中下面代码: static void Main(string[] args) {         if(true)         {                 int num = 10;         }         System.Console.WriteLine(num);

如何学习javascript: javascript学习-LOCATION

location表示该窗口当前显示文档的URL:Location对象的toString()方法返回href属性的值,可以使用location代替location.hrefLocation的属性:href,protacol,host,hostname,port,pathname,search(分别表示URL的各个部分)载入新的文档:replace();(在历史中替换当前文档)assign();(在历史中新建文档)location = "url";(相对地址,绝对地址)location =