`

node.js的开发规范

 
阅读更多

       最近看nodej开发指南一书中Node.js编程规范,故摘录于此,学习前人的经验。供学习交流。

 

1.缩进:选择两空格缩进

例如:

function func(boolVar) {
if (boolVar) {
console.log('True');
} else {
console.log('False');
}
};

2.行宽

建议把行宽限制为80个字符

3.语句分隔符

建议一律使用分号,哪怕一行只有一个语句,也
不要省略分号。

4.变量定义

永远使用 var 定义变量,而不要通过赋值隐式定义变量。因为通过赋值隐式定义的变
量总是全局变量,会造成命名空间污染。我们建议绝不使用全局变量,因此要通过 var 把
所有变量定义为局部变量。
使用 var 定义变量时,确保每个语句定义一个变量,而不要通过逗号( , )把多个变
量隔开。
正确的变量定义格式:
var foo;
var bar;
var arr = [40, 'foo'];
var obj = {};

5.变量名和属性名

我们使用小驼峰式命名法(lower camel case)作为所有变量和属性的命名规则,不建议
使用任何单字母的变量名。
正确的命名:
var yourName = 'BYVoid';

6.函数

JavaScript具有函数式编程的特性,因此函数本质上和一般的变量没有区别,对于一般的
函数我们同样使用小驼峰式命名法。但对于对象的构造函数名称(或者不严格地说“类”的
名称),我们使用大驼峰式命名法(upper camel case),也称为Pascal命名法。
规定函数名与参数表之间规定无空格,参数表和括号( { 和 } )之间要有一个空格,
并且在同一行。
正确:
var someFunction = function() {
return 'something';
};
function anotherFunction() {
return 'anything';
}
function DataStructure() {
this.someProperty = 'initialized';
}

7.引号

JavaScript中单引号( ' )和双引号( " )没有任何语义区别,两者都是可用的。我们建
议一律统一为单引号,因为JSON、XML都规定了必须是双引号,这样便于无转义地直接引用。
正确的引号用法:
console.log('Hello world.');

8.关联数组的初始化 

 将 var = { 放在一行,下面每行一对键值,保持两空格的缩进,以分号结尾,}; 最
后单独另起一行。对于每对键值,除非键名之中有空格或者有非法字符,否则一律不用引号。
正确:
var anObject = {
name: 'BYVoid',
website: 'http://www.byvoid.com/',
'is good': true,
};

9.等号

 尽量使用 === 而不是 == 来判断相等,因为 == 包含了隐式类型转换,很多时候可能

 与你的预期不同,例如下面错误的例子,num == literal的值是true。
正确的等号用法:
var num = 9;
var literal = '9';
if (num === literal) {
console.log('Should not be here!!!');
}

10.命名函数

尽量给构造函数和回调函数命名,这样当你在调试的时候可以看见更清晰的调用栈。
对于回调函数,Node.js的API和各个第三方的模块通常约定回调函数的第一个参数是错
误对象err,如果没有错误发生,其值为 undefined。
正确:
req.on('end', function onEnd(err, message) {
if (err) {
console.log('Error.');
}
});
function FooObj() {
this.foo = 'bar';
}

B.11 对象定义

尽量将所有的成员函数通过原型定义,将属性在构造函数内定义,然后对构造函数使用
new 关键字创建对象。绝对不要把属性作为原型定义,因为当要定义的属性是一个对象的
时候,不同实例中的属性会指向同一地址。除非必须,避免把成员函数定义在构造函数内部,
否则会有运行时的闭包开销。
正确:
function FooObj(bar) {
//在构造函数中初始化属性
this.bar = bar;
this.arr = [1, 2, 3];
}
//使用原型定义成员函数
FooObj.prototype.func = function() {
console.log(this.arr);
};
var obj1 = new FooObj('obj1');
var obj2 = new FooObj('obj2');
obj1.arr.push(4);
obj1.func(); // [1, 2, 3, 4]
obj2.func(); // [1, 2, 3]

B.12 继承

首先,避免使用复杂的继承,如多重继承或深层次的继承树。如果的确需要继承,那么
尽量使用Node.js的util模块中提供的inherits函数。例如我们要让Foo继承EventEmitter,
最好使用以下方式:
var util = require('util');
var events = require('events');
function Foo() {
}
util.inherits(Foo, events.EventEmitter);

 

 

  

 

分享到:
评论

相关推荐

    新时期的node.js入门-李锴-书中示例代码

    《新时期的Node.js入门》是李锴在2018年1月出版的一本专为初学者准备的Node.js教程,旨在帮助读者快速掌握这个强大的JavaScript后端开发平台。本书通过丰富的示例代码,深入浅出地介绍了Node.js的基础知识和实际应用...

    Node.js入门源代码及开发工具

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,从而打破了JavaScript只能在浏览器中运行的传统。本资源包包含了Node.js的入门源代码和开发工具,对于初学者...

    node.js开发指南 pdf+源码

    《Node.js开发指南》是一本面向初学者的Node.js教程,旨在帮助开发者快速掌握这个基于Chrome V8引擎的JavaScript运行环境。Node.js以其高效的非阻塞I/O模型和事件驱动特性,成为构建网络应用的强大工具,尤其在实时...

    node.js实战(第2版)PDF&源码.zip

    《Node.js实战(第2版)》是一本深入探讨Node.js技术的实战指南,适合有一定JavaScript基础并希望进一步掌握Node.js开发的读者。本书详细介绍了如何利用Node.js的强大功能进行后端开发,以及如何与其他技术栈配合,...

    《Node入门一本全面地Node.js教程》PDF

    - **JavaScript执行**:V8引擎是Google为Chrome浏览器开发的高性能JavaScript引擎,Node.js使用V8来解析和执行JavaScript代码,提供快速的运行速度。 - **优化技巧**:理解V8引擎的内存管理和垃圾回收机制,以及...

    Node.js开发实战源码

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,极大地推动了前后端同栈开发的潮流。本资源"Node.js开发实战源码"提供了一套完整的Node.js项目实战代码,对于...

    Node.js从入门到精通

    18. **全栈开发**:随着Node.js的普及,从前端到全栈开发的路径越来越常见,开发者可以使用Node.js构建完整的Web应用。 这些知识点构成了Node.js开发者的基本技能库,从基础概念到实际项目开发,逐步深入,帮助学习...

    Node.js基础开发指南.pdf 清晰中文完整版

    《Node.js基础开发指南》是一本全面介绍Node.js技术的中文教材,旨在帮助读者从零开始掌握这个强大的JavaScript运行环境。Node.js以其异步、事件驱动的非阻塞I/O模型,使其在处理高并发、实时应用方面表现出色。本...

    Node.js开发岗位职责Node.js开发职责任职要求.docx

    根据给定文件中的内容,我们可以...无论是Node.js开发、ETL开发、Delphi开发还是老客户开发岗位,都需要候选人具备相关的专业知识和实践经验。此外,良好的沟通能力、团队合作精神也是这些岗位所看重的重要素质之一。

    Node.js-基于Node.js和MongoDB实现的基金小工具

    Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端执行,打破了JavaScript只能在浏览器中运行的传统。Node.js采用了事件驱动、非阻塞I/O模型,使其在高并发场景下表现出色,非常...

    新时期的Node.js入门.pdf

    3. **模块系统**:Node.js使用内置的模块系统来组织代码,如`require`和`exports`,学习如何导入和导出模块,以及CommonJS规范。 4. **文件系统操作**:Node.js提供了丰富的文件系统API,用于读写文件、目录操作等...

    Node.js入门经典 源代码

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,极大地推动了前后端一体化的开发模式。本资源是书籍《Node.js入门经典》的配套源代码,对于初学者来说,是...

    Node.js-Node.js编码风格指南

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行编程。"Node.js编码风格指南"旨在提供一套统一的代码编写规范,以提高代码的可读性、可维护性和团队协作效率。...

    《nodejs开发指南》中文pdf

    《Node.js开发指南》是一本面向初学者和中级开发者的专业指南,旨在帮助读者掌握Node.js这一强大的服务器端JavaScript运行环境。这本书用中文详细地讲解了Node.js的核心概念、特性和应用,是学习Node.js的理想资源。...

    node.js开发指南1

    附录B则关注Node.js的编程规范,提供了编写清晰、高效代码的指导,同时也分享了开发过程中的一些实用技巧和经验。 总体来说,《Node.js开发指南1》适合对Node.js感兴趣,但缺乏系统学习经验的开发者,以及有一定...

Global site tag (gtag.js) - Google Analytics