Node 基础学习

发布于 2022-08-14 10:53:59 字数 3628 浏览 145 评论 0

全局对象

global

  • 为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。
  • 直接 a=1,a 这个属性会挂在 global 对象上
  • 在 nodejs 中你不可能在最外层定义变量,因为所有的用户代码都是属于当前模块的,而当前模块本身也不是最外层
  • 永远使用 var 定义变量,而避免引入全局变量,防止污染命名空间,防止代码的耦合风险

global上的属性

process

  • 描述当前进程状态,提供了一个与操作系统的简单接口
  • stdout 标准输出流
  • stdin 标准输入流
  • argv 一个由命令脚本执行时的各个参数组成的数组,第一个参数是 node,第二个参数是脚本文件名,之后的是传进来的脚本参数
  • version node 的版本号
  • versions node 的版本和依赖
  • pid 当前进程的进程号
  • nextTick(callback) 当前事件环循环结束,调用回调
  • kill(pid,signal) 发送信号给进程
  • memoryUsage() 返回一个对象,描述了 node 进程所用的内存状况,字节
  • abort() 会让node 退出并生成一个核心文件
  • chdir(directory) 改变当前进程的工作目录,如果失败抛出异常
  • cwd() 返回当前进程的工作目录,会随 chdir 改变而改变

Buffer

  • buffer 对象。也是构造函数

创建 buffer

  • var buffer=new Buffer(size)
  • var buf = new Buffer([10, 20, 30, 40, 50]);
  • var buf = new Buffer("sunyongjian", "utf-8");
  • 在utf-8的编码 一个英文字符--》一个字节 一个中文等于三个字节
  • buffer定义每个字节都是16进制的 因为一个字节是八位2进制的组成,2的八次方-1 一个字节转化成10进制最大为255.转化成16进制最大为ff

buffer 实例的方法

原型上的方法

fill

实例.fill() 第一个参数是 value (支持 number,string)
第二个参数是 起始位置 第三个参数是 结束位置 如果给的位置不够会默认截取 value 的开始部分 填进 buffer
如果后面的参数不给,就默认全部替换成value

var buffer=new Buffer('珠峰'); 
console.log(buffer);    //<Buffer e7 8f a0 e5 b3 b0>
buffer.fill("A",1,2);
console.log(buffer);    //<Buffer e7 41 a0 e5 b3 b0>

write

  1. string 要写入的内容
  2. offset 偏移量
  3. 写的长度
  4. encoding 编码
var buffer=new Buffer(6);//<Buffer 90 db 0d 00 00 00>
buffer.write("珠",1,3,"utf8");//<Buffer 00 e7 8f a0 00 00>
console.log(buffer);

copy

var buff = new Buffer(12);  //先创建一个长度为12的随机取值的buffer
var buff1= new Buffer("一二");   
var buff2= new Buffer("三四"); //把这两个buff copy进去
//buff1.copy(targetBuffer,targetStart,sourceStart,sourceEnd)//目标buffer  目标buffer的开始位置  buff1的截取起始,结束  都是索引包前不包后
buff1.copy(buff,0,0,6);  // 起始位置不写默认是从0 开始    源不写默认从0-结束   
buff2.copy(buff,6,0,6);

现在 buff1 和 buff2 的内容就拼接到 buff 里了

  • slice 跟数组和字符串的 slice 类似
  • 返回一个新的 buffer 把截取结果给它,不同之处在于 newbuffer 修改内容,老 buffer 的内容也会变
var buffer=new Buffer('一二');
buffer.slice(0,7).toString();   // "一二"

构造函数上的方法

  • concat 这是构造函数上的方法,里面的参数是一个数组,数组里包含要拼接的buffer 返回一个拼接好的新 buffer
var buff1=new Buffer([1,2,3]);
var buff2=new Buffer([4,5,6]);
console.log(Buffer.concat([buff1,buff2])); // 
  • 引入内置模块解决 截取中文 乱码问题
var StringDecoder=require("string_decoder").StringDecoder;
var sd=new StringDecoder;
var buffer=new Buffer("珠峰");
console.log(buffer.slice(0,4).toString()); // 珠�
console.log(buffer.slice(4).toString());   //��
console.log(sd.write(buffer.slice(0,4)));  //珠
console.log(sd.write(buffer.slice(4)));    //峰

每个当前模块自带而注入的参数

__dirname

  • 表示当前执行脚本所在的目录

__filename

  • 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径。如果在模块中,返回的值是模块文件的路径。

内置模块

util

util.inspect

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

你怎么敢

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文