2016年3月8日

javascript

函数

函数自执行

( function(){…} )()( function (){…} () )这两种立即执行函数的写法。

要在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明

nodejs

Buffer

Buffer类方法

  • 一个用户更好的操作二进制数据的类

    • 我们在操作文件或者网络数据的时候,其实操作的就是二进制数据流,Node为 我们提供了一个更加方便的去操作这个数据流的类Buffer,他是一个全局的类。

  • new Buffer(size)

    • 分配一个新的 size 大小单位为8位字节的 buffer。

  • new Buffer(array)

    • 分配一个新的 buffer 使用一个8位字节 array 数组.

  • new Buffer(string,[encoding])

    • str String类型 - 需要存入buffer的string字符串.

    • encoding String类型 - 使用什么编码方式,参数可选.

  • buf.length:buffer的bytes大小

  • buf[index]:获取或者设置在指定index索引位置的8位字节内容。

  • buf.write(string,[offset],[length],[encoding]):根据参数offset偏移量和指定的encoding编码方式,将参数string数据写入buffer。

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

  • buf.toString([encoding],[start],[end]):根据encoding参数(默认是"utf-8")返回一个解码的string类型;

  • buf.toJSON():返回一个JSON表示的Buffer实例。JSON.stringify将会默认调用字符串序列化这个Buffer实例。

  • buf.slice([start],[end]):返回一个新的buffer,这个buffer将会和老的buffer引用相同的内存地址,注意:修改这个新的buffer实例slice切片,将会改变原来的buffer。

  • buffer.copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd]):进行buffer的拷贝。

var bf=new Buffer("1234567");
var bf2=new Buffer(10);

console.log(bf);
console.log(bf2);

bf.copy(bf2,2,1,3);
console.log(bf);
console.log(bf2);

//结果:
//
<Buffer 31 32 33 34 35 36 37>
<Buffer 78 2f e5 4b b0 01 00 00 01 00>
<Buffer 31 32 33 34 35 36 37>
<Buffer 78 2f 32 33 b0 01 00 00 01 00>

静态方法

  • Buffer.isEncoding(encoding):如果给定的编码encoding是有效的,返回true,否则返回false。

  • Buffer.isBuffer(obj):测试这个obj是否一个Buffer。

  • Buffer.byteLength(string,[encoding]):将会返回这个字符串真实byte长度。encoding编码默认是:"utf8"。

  • Buffer.concat(list,[totalLength]):返回一个保存着将传入buffer数组中所有buffer对象拼接在一起的buffer对象。

Last updated