function createFunctions(){ var result = new Array(); for(var i = 0;i<2;i++){ result[i] = function(){ return i; } } return result; } var funcs = createFunctions(); for(var i=0;i<funcs.length;i++){ console.log(funcs[i]()+","); }
时间: 2023-06-03 10:07:16 浏览: 68
这是一个技术问题,createFunctions() 函数会创建一个包含两个嵌套函数的数组,这两个函数都返回变量 i 的值,但是由于 JavaScript 的特性,结果会是 2 和 2,而不是 0 和 1。
相关问题
encodeUint8Array: function (uint8Array) { var CHUNK_SIZE = 0x8000; //arbitrary number var index = 0; var length = uint8Array.length; var result = ""; var slice; var slice_tmp = ""; while (index < length) { slice = uint8Array.subarray(index, Math.min(index + CHUNK_SIZE, length)); for (var i = 0, len = slice.length; i < len; i++) { slice_tmp += String.fromCharCode(slice[i]); } result += slice_tmp; index += CHUNK_SIZE; slice_tmp = ""; } return btoa(result); }
这是一个 JavaScript 函数,用于将 Uint8Array 类型的数据编码成 Base64 字符串。
函数中使用了一个 CHUNK_SIZE 常量,表示每次处理的字节数。函数首先将数据按 CHUNK_SIZE 切分成若干个片段,然后对每个片段中的字节进行遍历,将其转换成字符并存储到一个临时字符串 slice_tmp 中。当遍历完一个片段后,将存储在 slice_tmp 中的字符拼接到最终结果 result 中,并清空 slice_tmp。最后,将处理完成的数据以 Base64 编码的形式返回。
需要注意的是,该函数返回的是一个字符串,而不是 Uint8Array 类型的数据。如果需要将 Base64 字符串解码成 Uint8Array 类型的数据,可以使用类似于以下的代码:
```
function decodeBase64ToArrayBuffer(base64) {
var binary_string = atob(base64);
var len = binary_string.length;
var bytes = new Uint8Array(len);
for (var i = 0; i < len; i++) {
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}
```
//reader.result是一个含有视频数据流的Blob对象 var buf = new Uint8Array(reader.result);
在这段代码中,`reader.result` 是一个包含视频数据流的 Blob 对象。为了将 Blob 对象转换为 Uint8Array 类型的数据,可以使用 `reader.result` 的 `arrayBuffer()` 方法来获取 ArrayBuffer 对象,然后通过 `Uint8Array` 构造函数将其转换为 Uint8Array 类型。
以下是示例代码:
```javascript
reader.onload = function(event) {
const arrayBuffer = event.target.result;
const buf = new Uint8Array(arrayBuffer);
// 在这里可以使用 buf,它是一个 Uint8Array 类型的数据
};
reader.readAsArrayBuffer(reader.result);
```
在上面的代码中,`reader.onload` 是 FileReader 对象的 `onload` 事件处理函数,当读取完成后触发。在事件处理函数中,通过 `event.target.result` 获取到读取到的 ArrayBuffer 对象,然后使用 Uint8Array 构造函数将其转换为 Uint8Array 类型的数据,并将其赋值给 buf 变量。现在你可以使用 buf 变量来处理视频数据流。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)