node.js基础重新开始(二)

一、path模块

1.path.normalize(path) 方法规范化给定的path,解析‘..’和‘.’片段。

当找到多个连续的路径段分隔符时,则它们将被替换为单个平台特定的路径段分隔符,尾部的分隔符会保留,如果path 是零长度的字符串,则返回'.',表示当前工作目录。

2.path.join([...paths]);方法使用平台特定的分隔符作为定界符将所有给定的path片段连接在一起,然后规范化生成的路径。零长度的path片段会被忽略,如果连接的路径字符串是零长度的字符串,则返回'.',表示当前工作目录。

3.path.reslove([...paths]);方法将路径或者路径皮那段的序列解析为绝对路径。

给定的路径序列从右到左进行处理,每个后续的path前置,直到构造处一个绝对路径

4.path.basename(path[,ext]);方法返回path的最后一部分,尾部的目录分隔符将被忽略。

5.path.dirname(path);方法返回path的目录名,尾部的目录分隔符被忽略 。

6.path.parse(path);方法返回一个对象,其属性表示path 的重要元素,尾部的目录分隔符将被忽略,返回的对象有以下属性(dir,root,base,name,ext);

7.path.format(pathObject);方法从对象返回路径字符串,与上面的parse相反

当为pathObject提供属性的时候,注意以下组合。其中一些属性优先于另一些属性。

如果提供了pathObject.dir 则忽略pathObject.root,也就是如果dir和root不一样时,采用dir的内容

如果pathObject.base 存在,则忽略pathObject.ext和pathObject.name 也就是如果base和ext,name不一样的时候,使用base 的内容。

8.path.sep 提供平台特定的路径片段分隔符

POSIX上面是/ windows上是\

9.path.delimiter 提供平台特定的路径定界符

‘;’用于Windows

‘:’用于POSIX

10.path.win32 属性提供对特定于Windows的path方法的实现的访问。

11.path.posix 属性提供对 path 方法的 POSIX 特定实现的访问。

12.__dirname、process.cwd()、./的区别


node.js基础重新开始(二)_第1张图片

a、__dirname 和 __filename 总是返回文件的绝对路径

b、process.cwd() 总是返回执行node命令所在文件夹

c、./ 在require方法中总是相对当前文件所在文件夹,只跟在哪里调用的命令有关系,即和process.cwd() 一样,相对node启动文件夹

二、 Buffer

1.Buffer用于处理二进制数据流

2.实例类似整数数组,大小固定

3.C++ 代码在V8堆外分配物理内存

4.Buffer的大小在被创建时确定

5.Buffer类在Node.js中是一个全局变量,因此无需使用require('buffer').Buffer.

6.Buffer.alloc(size[,fill[,encoding]])

size: 新Buffer的所需长度(如果size不是数字 则抛出TypeError)

fill 用于预填充新Buffer的值 默认值是0

encoding 如果fill是一个字符串 则这是它的字符编码 默认值是utf8

7.Buffer.allocUnsafe(size) 

size: 新建的Buffer的长度

以这种方式创建的Buffer实例的底层是未初始化的,新创建的Buffer的内容是未知的。而Buffer.alloc() 可以创建以0初始化的Buffer实例

调用Buffer.alloc() 可能比替代额Buffer.allocUnsafe() 慢得多,带能确保新创建的Buffer实例的内容永远不会包含敏感的数据。

8.Buffer.from() 有很多。。。

9.Buffer.byteLength(string[,encoding]) 

string:要计算的长度的值

encoding: 如果string是字符串,则这是它的字符编码 默认值是utf8

10.Buffer.isBuffer(obj);

如果obj是一个Buffer 则返回true 否则返回false

11.buf.length(); 返回内存中分配给buf 的字节数 不一定反应buf中可用数据的字节量。也就是开辟空间是多少 length就是多少,如果想改变一个Buffer的长度,应该将length视为只读的。

12.buf.toString([encoding[,start[,end]]])

encoding : 使用的字符编码 默认值是utf8

start:开始解码的字节偏移量 默认是0

end:结束解码的字节偏移量(不包含)默认值buf.length 

13.buf.fill(value[.offset[,end]][,encoding])

value:用来填充buf 的值

offset:开始填充bug 的偏移量 默认值是0

end:结束填充buf 的偏移量(不包含 默认值是buf.length)

encoding 如果value是字符串,则指定value的字符编码 默认值是utf8

返回buf 的引用


node.js基础重新开始(二)_第2张图片

14.buf.equals(otherBuffer)

otherBuffer:要与bur对比的Buffer或者Uint8Array

返回布尔值


node.js基础重新开始(二)_第3张图片

15.buf.indexOf(value[,byteOffset][,encoding]);

value:要查找的值

byteOffset:buf中开始查找的偏移量 默认值是0

encoding 如果value是字符串 则制定value的字符编码 默认值是utf8

返回 bug中首次出现value的索引 如果buf没包含value则返回-1

16.彩蛋   !!!!

StringDecoder...解决中文乱码问题...

用于以保留编码的多字节 UTF-8 和 UTF-16 字符的方式将 Buffer 对象解码为字符串

你可能感兴趣的:(node.js基础重新开始(二))