node中的process和Buffer 和 去重
1.process是一个全局对象,无息声明就可以访问,每个node进程都有独立的process对象,该对象储存了当前进程的环境变量
process.argvnode的命令行参数,argv[0]表示node本身,argv[1]表示当前文件路径
process.pid :进程id
process.version:node版本
process.cwd() :当前目录
process.nextTick(function(){
console.log("first")
})
console.log("next");
2.Buffer是node特有的(区别于浏览器js)的数据类型、主要用来处理二进制数据、在文件操作和网络操作中,如果不显示的声明编码格式,起返回数据的类型是Buffer
Buffer.from();
readFile(适用较小的文件)异步读取文件的方法,读取的数据在回调中获取 readFileSync直接返回文本数据内容
大文件用stream读取
读取文件一定要设置编码,否则默认是buffer形式出现
//读取文件
fs.readFile("路径","utf-8",function(err,res){//异步读取文本文件的的内容
console.log(res.toString())//异步编程
})
var data=fs.readFileSync("路径",{encode:"utf-8"});
console.log(data);//同步编码
//获取文件状态
fs.stat("路径",function(err,result){
if(err){
console.log(err)
return
}else{
console.log(result)
}
})
__dirname:全局变量,储存的是文件所在的文件目录
__firname:返回当前模块文件被解析后的绝对路径,该属性并非全局,而是模块作用域下的
//获取目录下的所有的文件名字
function getAllFileFromPath(path){
fs.readdir(path,function(err,res){
for (var subPath of res){
var statobj=fs.statSync(path+"/"+subPath);
if(statobj.isDirectory()){//判断是否为目录
console.log("DIr",subPath)//如果是文件夹,递归获取子目录中的文件列表
}else{
console.log(subPath);
]
}
})
}
getAllFileFromPath(__dirname)
//关于去重
var util={
noRepeat:function(arr){
return arr.filter()function(ele,index){
rewurn arr.indedxOf(ele)==index//indexOf只找第一个元素
}
},
add:function(arr){
return arr.reduce(function(ele1,ele2){
return ele1+ele2
})
}
}
//es6去重
var arr = [1, 2345, 123, 1, 1, "1", null];
console.log(new Set(arr));