From 7680ea586a064a103249c0fa568683687aeb5de5 Mon Sep 17 00:00:00 2001 From: ruanyf Date: Sun, 15 Oct 2017 16:09:15 +0800 Subject: [PATCH] docs(arraybuffer): edit ab2str --- docs/arraybuffer.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/arraybuffer.md b/docs/arraybuffer.md index 85daa28..98c10e5 100644 --- a/docs/arraybuffer.md +++ b/docs/arraybuffer.md @@ -447,15 +447,17 @@ Float64Array.BYTES_PER_ELEMENT // 8 ### ArrayBuffer与字符串的互相转换 -`ArrayBuffer`转为字符串,或者字符串转为`ArrayBuffer`,有一个前提,即字符串的编码方法是确定的。假定字符串采用UTF-16编码(JavaScript的内部编码方式),可以自己编写转换函数。 +`ArrayBuffer`转为字符串,或者字符串转为`ArrayBuffer`,有一个前提,即字符串的编码方法是确定的。假定字符串采用 UTF-16 编码(JavaScript 的内部编码方式),可以自己编写转换函数。 ```javascript -// ArrayBuffer转为字符串,参数为ArrayBuffer对象 +// ArrayBuffer 转为字符串,参数为 ArrayBuffer 对象 function ab2str(buf) { + // 注意,如果是大型二进制数组,为了避免溢出, + // 必须一个一个字符地转 return String.fromCharCode.apply(null, new Uint16Array(buf)); } -// 字符串转为ArrayBuffer对象,参数为字符串 +// 字符串转为 ArrayBuffer 对象,参数为字符串 function str2ab(str) { const buf = new ArrayBuffer(str.length * 2); // 每个字符占用2个字节 const bufView = new Uint16Array(buf);