学习node2_process,buffer

Posted 鱼大饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习node2_process,buffer相关的知识,希望对你有一定的参考价值。

1:process全局对象 process.argv

第一个是node,第二个是运行的文件 如果命令行加参数,就是加在数据后面

2:process.version===node -v 查看版本信息      process.versions 查看node以及node依赖包版本信息console.log=process.stdout.write()一个指向标准输出流(number貌似第二个输出不了)

 

process.on(\'exit\', function () {
  setTimeout(function () {
    console.log(\'This will not run\');
  }, 100);
  console.log(\'Bye.\');
});

结束进程会调用  但是setTimeOut里面的永远不会执行

 

  

 

 

process.on(\'uncaughtException\', (err) => {
  fs.writeSync(1, `Caught exception: ${err}\\n`);
});

setTimeout(() => {
  console.log(\'This will still run.\');
}, 500);

// Intentionally cause an exception, but don\'t catch it.
nonexistentFunc();
console.log(\'This will not run.\');


我们来看上面的例子,我们注册了uncaughtException事件来捕捉系统异常。执行到nonexistentFunc()时,因为该函数没有定义所以会抛出异常。因为javascript是解释性的语言,nonexistentFunc()方法上面的语句不会被影响到,他下面的语句不会被执行。所以他的执行结果如下:

Caught exception: ReferenceError: nonexistentFunc is not defined
This will still run.

 

  

 

3:process.stdin.resume();

process.stdin.on(\'data\',function(chunk){
console.log(\'用户输入了:\'+chunk)     监听用户输入的信息
})

4:new Buffer(size);size[Number]创建一个Buffer对象,并为这个对象分配一个大小;

当我们为一个Buffer对象分配空间大小以后,其长度是固定,不能更改的。

5:var bf=new Buffer(\'yuling\',\'utf-8\');

bf.forEach(function(a){
console.log(String.fromCharCode(a))
})

6:如果想获取一段内容的字节长度可以用Buffer来做,获取内容长度可以用字符串方法

7:把字符串写入Buffer对象里面,var str=\'yuling\';var bf=new Buffer(5); bf.write(str,1)是从bf的第1索引开始写入 索引为0的为空;

Buffer.write(要写入的字符串,从Buffer对象中的几位开始写,写入的字符串的长度,写入字符串的编码)

8:new Buffer.toString(\'uft-8\',1)从索引1开始截取并按照‘utf-8’转化为字符串。(中文一个字是三个字符,所以需要注意,否则出现乱码);

9:Buffer.toJSON();返回一个JSON表示的Buffer实例。JSON.stringify转化为JSON字符串

10:Buffer.slice()和字符串方法相同 但是获取的Buffer引用的还是原来的Buffer地址,修改其中一个,另一个也会变(感觉有点坑爹,浅复制);

11:Buffer.copy()深拷贝, bf1.copy(bf2,num,num_bf1s,num_bf1e)  b1的数据拷贝到bf2(看着很奇怪),num是拷贝的数据从bf2的索引没num开始覆盖,(num前面不不变)(num_bf1s,num_bf1e代表的是bf1的数据从哪开始拷贝,从哪结束)

以上是关于学习node2_process,buffer的主要内容,如果未能解决你的问题,请参考以下文章

Node.js Buffer解读

Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码

智能合约实战 solidity 语法学习 12 [ virtual 重写override 抽象abstract 接口interface 库library 销毁selfdestruct] 附代码(代码片

MySQL: 10 Buffer Pool的内存数据结构

uCOS-III 学习记录(10)——时间片轮转调度

OpenGL学习脚印: 帧缓冲对象(Frame Buffer Object)