首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Node 编码轨范

2012-09-09 
Node 编码规范0 undefined null false true你应该小心谨慎比如  \t\r\n 0 比较结果是trueRight:var a

Node 编码规范
0 undefined null false true

你应该小心谨慎比如 ' \t\r\n' == 0 比较结果是true

Right:

var a = 0;if (a === '') {  console.log('winning');}

Wrong:

var a = 0;if (a == '') {  console.log('losing');}

使用字面表达式,用 '{}' ,'[]' 代替 new Arraynew Object

不要使用 stringboolnumber 的对象类型,即不要调用 new Stringnew Booleannew Number

Object ,Array 创建,当有多个元素时,注意分行排列时逗号的位置

Right:

var a = ['hello', 'world'];var b = {  good: 'code',  'is generally': 'pretty',};

Wrong:

var a = [  'hello', 'world'];var b = {"good": 'code'  , is generally: 'pretty'};

避免使用 “with” 与 “eval”

for-in 循环,仅在 object/hash/map 时使用,绝不要对Array 使用

不要把Array 当做关联数组或Object 使用,即你不应该用非数字作为Array 的索引 (Phper 尤其注意这点)
Wrong :

var a = []; // use '{}' insteada['hello'] = 'shit';a['foo'] = 'bar';

Node 的异步回调函数的第一个参数应该是错误指示

function cb(err, data , ...) {...}

类继承写法,尽管有各种方式来实现继承,但最为推荐的是Node 的标准写法

function Socket(options) {  ...  stream.Stream.call(this);  ...}util.inherits(Socket, stream.Stream);

如果你在模块中 exports 一个类,对于此类的私有成员变量,建议加上 "_" 前缀以示区分

变量声明时,应该每行声明一个,不应该都写在一行(尽管这被JSLint 所推荐)。

Right:

var assert = require('assert');var fork = require('child_process').fork;var net = require('net');var EventEmitter = require('events').EventEmitter;

Wrong:( Node 源代码已经将此方式全部修正)

var assert = require('assert')  , fork = require('child_process').fork  , net = require('net')  , EventEmitter = require('events').EventEmitter;

注释规范,采用 Google 的js 规范

Right :

/** * Queries a Baz for items. * @param {number} groupNum Subgroup id to query. * @param {string|number|null} term An itemName, *     or itemId, or null to search everything. */goog.Baz.prototype.query = function(groupNum, term) {  // ...};

更多案例请参看以上链接

多参考、模仿 Node 源码的编程风格 ^_^

热点排行