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

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();//输出lijian
console.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值