mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-29 05:42:20 +00:00
docs(ArrayBuffer): optimize ab2str()
This commit is contained in:
parent
2a82f81022
commit
143a1e4b13
@ -452,7 +452,17 @@ Float64Array.BYTES_PER_ELEMENT // 8
|
|||||||
```javascript
|
```javascript
|
||||||
// ArrayBuffer转为字符串,参数为ArrayBuffer对象
|
// ArrayBuffer转为字符串,参数为ArrayBuffer对象
|
||||||
function ab2str(buf) {
|
function ab2str(buf) {
|
||||||
return String.fromCharCode.apply(null, new Uint16Array(buf));
|
if (buf && buf.byteLength < 128000) { // limit max length avoid overhead
|
||||||
|
return String.fromCharCode.apply(null, new Uint16Array(buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
const len = bufView.byteLength;
|
||||||
|
const bstr = new Array(len);
|
||||||
|
const bufView = new Uint16Array(buf);
|
||||||
|
for (let i = 0; i < len; i++) {
|
||||||
|
bstr[i] = String.fromCharCode.call(null, bufView[i]);
|
||||||
|
}
|
||||||
|
return bstr.join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 字符串转为ArrayBuffer对象,参数为字符串
|
// 字符串转为ArrayBuffer对象,参数为字符串
|
||||||
|
Loading…
x
Reference in New Issue
Block a user