第1章-安装Node.js及相关要点-1.2.Node.js的基础和语法

来源:互联网 发布:php让接收的图片倾斜 编辑:程序博客网 时间:2024/05/23 00:24

Node.js建立在Google Chrome的V8引擎和他的ECMAScript之上。
1.弱类型
2.Buffer-Node.js特殊数据类型
3.对象字面量
4.函数
5.数组
6.原型特性
7.编码规范

一、弱类型

JavaScript的基本类型:
1.String
2.Number
3.Boolean
4.Undefined
5.Null
6.RegExp
7.其他所有都是object

'a' === new String('a') //false'a' === new String('a').toString() //true'a' == new String('a') //true==会进行自动类型转换,而===则不会

二、Buffer—Node.js特殊数据类型

Buffer是Node.js中在4种基本数据(Boolean、String、Number和RegExp)之外添加的一种类型。
Buffer做数据存储非常高效,Node.js推荐在任何可以使用Buffer的情况下去使用他,如从文件系统中读取内容或者接收网络包内容等。

三、对象字面量

对象字面量相对比较而言是很简洁易读的:

var obj = {    color: "red",    type: "suv",    owner: {        ...    }}

记住,函数也是对象:

var obj = function (){    this.color: "red",    this.type: "suv",    this,owner: {        ...    }}

四、函数

函数是“一等公民”,我们可以把他当作变量来使用,因为他们也是对象!是的,没错,函数也可以拥有属性和特性,

定义/创建函数
方式一:使用具名函数表达式

function f(){    console.log('Holle Word');    return true;}

方式二:使用匿名函数表达式并赋值给一个变量

var f = function (){    console.log('Holle Word');    return true;}

注意:这种方式定义必须在函数调用前完成,因为该方式并没有让函数预定义。

方式三:使用前两种方式的

var f = function f(){    console.log('Holle Word');    return true;}

还可以给函数添加属性:

var f = function() {console.log('lijian');}f.age = 1;f();//输出lijianconsole.log(f.age);//输出1

注意:关键字return是可选项,如果不被指定,函数在被调用后会返回undefined

五、函数作为参数传递

JavaScript中的函数也是对象,所以我们可以把函数作为参数(Node.js中通常用作回调)传递给其他函数

var convertNum = function(num){    return num + 10;}var processNum = function(num, fn){    return fn(num);}processNum(10, convertNum);

六、数组

数组也是对象,他从全局Array.prototype中继承了一些特殊的方法,然而,JavaScript数组并不是真正的数组,他们都是具有唯一角标的对象。

var arr = [];var arr2 = [1, "Hi", {a:2}, function (){console.log('lijian');}];var arr3 = new Array();var arr4 = new Array(1, "Hi", {a:2}, function (){console.log('lijian');});

七、原型特性

JavaScript中没有类的概念,对象可以直接从其他对象处继承,我们称之为原型继承。
JavaScript中有很多种类型的继承模式:
1.Classical
2.Pseudoclassical
3.Functional
下面是Functional继承模式的例子:

var user = function (ops){    return {firstName: ops.name || 'li'                ,lastName: ops.name || 'jian'                ,email: ops.email || '374452668@qq.com'                ,name: function () {return this.firstName + this.lastName}                }}var agency = function (ops){    ops = ops || {};    var agency = user(ops);    agency.customers = ops.customers || 0;    agency.isAgency = true;    return agency;}

八、编码规范

1.分号
以下两种情况必须要分号
1.1循环结构中:for(var i=0; i++; i<n)
1.2以括号开头的一行中,如使用立即调用函数表达式的时候(IIFE)

;(function(){...}())

2.驼峰式
类首字母大写,其他变量名首字母小写

var MainView = Backbone.View.extend({...});var mainView = new MainView();

3.命名
私有的方法和属性应以_开头

4.逗号
逗号先行

 var obj = {firstName: "li"                ,lastName: 'jian'                ,email: '374452668@qq.com'                }

5.缩进
通常可以使用1个tab、4个空格或者2个空格来进行缩进,

6.空格
一般情况下,在=、+、{和}符号前会加一个空格。方法调用时不加空格(如:arr.push(1);),但是定义匿名函数的时候要加一个空格:function () {}

0 0
原创粉丝点击