1.1.2 Node.js控制台(REPL)
Node.js也有自己的虚拟的运行环境:REPL。
我们可以使用它来执行任何的Node.js或者javascript代码。还可以引入模块和使用文件系统。
在终端的执行命令来打开控制台,
1.1.3 加载Node.js脚本
记载node.js脚本文件非常简单,运行“node 文件名”即可,“node program.js”。如果我们想快速执行一些简单的语句,可以使用-e参数,这样我们直接执行一些javascript或者node.js命令。
1.2.1 Node.js的基础和语法
Node.js 建立在Google chrome的V8引擎和它的ECMAScript之上,其实node.js语法与前端javascript是非常的类似的,包括对象,函数,方法等。
重点的方面:
1、弱类型
2、Buffer-Node.js特殊数据类型
3、对象字面量
4、函数
5、数组
6、原型特性
7、编码规范
1.2.1.1 弱类型
自动类型转换的特性可以帮助我们节省很多时间和精力。实际上,javascript基本类型只有几种:
String,Number,boolean,undefined,null,RegEXP,其他都是object(对象)
同样,javascript中的string,number和boolean类型都有相关方法进行转换,如:
‘a’===new String(‘a’) //false
‘a’===new String(‘a’).tostring() //true
‘a’==new string(‘a’) //true
==会自动类型转换,而===则不会。PS:1、对于string,number等基本类型。(1)不同类型比较,==会转换成同一个类型,在比较值是否相等,===如果类型不同,其结果就是不等。(2)同类型比较,直接进行值比较就行。2、对于数组和对象等高级类型。===与==没有区别。3、基础类型和高级类型。(1)对于==,将高级类型转换为低级类型,然后进行值比较。(2)因为类型不同,===结果为false。
1.2.1.2 Buffer—node.js特殊的数据类型
Buffer做数据存储非常有效。Node.js推荐在任何可以使用buffer的情况下去使用它,如:从文件系统中读取内容或者接受网络包等内容。
对象字面量:
var obj={
color:“green”,
type:“suv”,
owner:{
…}
}
函数也是对象
var obj=function{
this.color:”green”,
this.type:”suv”,
this.owner{
…
}
}
1.2.1.3 函数
在node.js和javascript中,函数是一等公民,我们可以把它当做变量使用,因为他们也是对象,函数拥有自己的属性和特性。
定义/创建函数
方式:1、使用具名函表达式数;2、使用匿名函数表达式赋值给一个变量;3、同时使用以上两种方式
1、使用具名函数
function f(){
console.log(‘Hi’);
return true;
}
2、使用匿名函数表达式赋值给变量
var f=function(){
console.log(‘Hi’);
return true;
}
3、同时使用两种方式
var f=function f(){
console.log(‘HI’);
return true;
}
函数作为参数传递
var con=function(num){
return num+10;
}
var po=function(num,fn){
return fn(num);
}
po(10,con);
函数调用与函数表达式的对比
函数表达式:function f(){};
函数调用:f();
1.2.1.4 数组
数组也是对象,javascript数组并不是真实的数组,他们就是具有唯一数值索引对象(一般从0开始)。
var arr=[];
var arr2=[1,”Hi”,{a:2},function(){console.log(‘boo’);}];
var arr3=new Array();
var arr4=new Array(1,”Hi”,{a:2},function(){console.log(‘boo’);});
1.2.1.5 原型特性
Javascript没有类的概念,对象可以直接从其他对象处继承,我们称之为原型继承。