标签:
1.初识NodeJs
什么时候NodeJS
能做什么
NodeJS环境搭建和运行
2.webstorm的使用
工程创建
webstorm的NodeJs配置
NodeJs代码提示
3.Node和JS的异同
基本语法
内置对象
全局对象
作用域
4.模块的使用
全局作用域
global对象
模块
模块概念
模块作用域
模块对象module
5.模块加载机制
模块的加载
require()
模块路径处理
模块文件查找机制
6.模块-module和exports
模块的创建
module对象
module.exports对象
exports对象
7.global对象
模块对象
__filename
__dirname
全局对象
setTimeout
setInterval
clearTimeout
clearInterval
Date
8.process对象
概念
属性和方法
argv
execPath
env
version
versions
pid
title
arch
platform
cwd()
chdir(directory)
memoryUsage()
exit(code)
kill(pid)
9.process对象-输入输出流
stdin、stdout:标准输入输出流(IO)
标准输入设备
标准输出设备
process.out.write()
输出流
process.in.resume()
恢复输入流
process.in.on(‘data‘)
接收输入流数据事件
10.Buffer-1
概念
Buffer类
new Buffer()
创建Buffer对象
Buffer对象数据的基本操作
bf[index] : 获取下标对应数据
bf.length : buffer长度
字符串和字节的区别
11.Buffer-2
Buffer对象的一些常用属性和方法
write()
toString()
toJSON()
slice()
copy()
12.Buffer-3
Buffer类的一些常用属性和方法
isEncoding()
isBuffer()
byteLength()
concat()
1、初识NodeJs
javascript是由三部分组成的
Ecmascript 定义了这门语言的一些基础,语法、数据类型、结构 还有一些常用的对象
BOM 基于Ecmascript扩展出来的用于页面操作元素的方法
DOM 基于Ecmascript扩展出来用于操作浏览器的一些方法
NodeJS也是基于Ecmascript扩展出来的一些操作非浏览器的一些方法,比如操作OS操作系统、file文件系统、database数据库、net网络
2、编辑器使用webstrom
可以直接右键run查看
使用setting配置nodejs的提示
3、node和js的区别
/*在ecmascript部分,nodejs和js其实是一样的,比如数据类型的定义,语法结构,内置对象
* 在js中的顶层对象 window
* 在node中的顶层对象 global
* 注意:在node中也没用什么window
*
* */
var a=100;
console.log(a); //100
var d=new Date();
console.log(d.getFullYear()); //2045
console.log(d.getMonth()+1); //10
var arr=[1,2,3];
arr.push(4);
console.log(arr); //[1,2,3,4]
function Person(name){
this.name=name;
}
Person.prototype.run=function(){
console.log(this.name+‘ running‘)
}
var p1=new Person(‘leo‘);
p1.run(); //leo running
4、模块的使用
在node中定义一个a,使用global不能访问到,是因为a是一个局部变量
var a=100;
console.log(global.a); //undefined
在node中有这样一个规定:
var a=100;
console.log(a); //100
global.a=200;
console.log(a); //100
console.log(global.a);//200
说明此时定义的a和global.a是两个变量
//__filename:当前文件被解析后的绝对路径
console.log(__filename); //d:\wamp\www\nodejs\node1.js
以上可以得出结论:每个文件都有自己的模块,每个模块都有这个的属性
5、模块加载系统
定义一个node2.js的文件
console.log("这是node2.js");
要想在node1.js里面引用可以用
require(‘./node2.js‘)//这是node2.js
模块加载机制的两个问题
1.加载路径
require(‘模块加载的路径‘)
路径可以写相对路径或者绝对路径
2.文件查找特点:
文件名称> .js >.json>.node >错误
6、模块-module和exports
在一个模块中通过var定义的变量,其作用域范围是当前模块,外部不能够直接的访问
如果我们想在一个模块中能够访问另外一个模块中定义的变量,可以
把变量作为global对象的一个属性
global.a=100;
使用模块对象module
module:保存提供和当前模块有关的一些信息,可以通过
console.log(module)
来查看都有哪些属性
在这个module对象,又一个子对象,exports 对象,我们可以通过这个对象把一个模块中的局部变量对象进行提供访问
在node5.js中写入
var a=100;
module.exports.a=a;
在node4.js中引入
var m5=require(‘./node5‘);//这个方法的返回值,其实就是被加载模块中的module.export
console.log(m5);//{ a: 100 }
在模块作用域内,除了module.exports还有一个内置模块对象,exports, 他其实就是module.exports
console.log(module.exports==exports)//true
返回值是true
所以也可以写为
exports.a=a;
输入结果一样
定义的一些细节尽量不去破坏它们的引用关系,
module.exports=[1,2,3]//如果不是赋值,而是重新定义,exports和module.exports的指向关系已经断开了
exports=[1,2,3]//这种定义也会断开
7.global对象
标签:
原文地址:http://www.cnblogs.com/eveblog/p/4861674.html