JavaScript参考手册
TypedArray
typedArray.slice
slice()
方法返回一个typed array的部分类型数组对象,数组内容采用浅拷贝方式. 方法采用与 Array.prototype.slice()
相同的算法.类型数组是 typed array types成员中的一员 .
语法
typedarray.slice([begin[, end]])
参数
begin:起始位置
可选从0开始的索引位置;负值索引, 表示与数组尾元素的偏移量.slice(-2)
表示提取数列中的末尾两个元素.如果没有设定起始位置,则将从开始位置开始截取。end:结束位置
可选从零开始到尾元素前的索引值.slice
取出元素时包含起始节点,单不包含结束节点。例,slice(1,4)
表示读取第二个元素到第四个元素(元素索引位置:1, 2, and 3).负值索引, 表示与数组尾元素的偏移量。slice(2,-1)
表示取出数组中的第三个到最后一个之间的所有元素.如果没有设定结束位置,则将从开始位置截取到序列尾部。(typedarray.length
).
返回值
包含取出元素的新的 typed array
描述
slice方法并不会改变原数组的内容,他只是返回从原数组中取出的元素的浅复制集合。
如何一个新元素被添加到任何一个数组中去,则另外一个数组不会发生变化。
示例
返回已存在类型数组的部分片段
var uint8 = new Uint8Array([1,2,3]);
uint8.slice(1); // Uint8Array [ 2, 3 ]
uint8.slice(2); // Uint8Array [ 3 ]
uint8.slice(-2); // Uint8Array [ 2, 3 ]
uint8.slice(0,1); // Uint8Array [ 1 ]
Polyfill
由于没有名称为TypedArray的全局对象,因此必须在“根据需要”的基础上进行填充。
// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice
if (!Uint8Array.prototype.slice) {
Object.defineProperty(Uint8Array.prototype, 'slice', {
value: Array.prototype.slice
});
}
这不是一个完整的polyfill,因为它返回的是一个Array实例,而不是Uint8Array,所以它没有通常存在于TypedArray上的属性。
如果您需要支持真正过时的不支持的JavaScript引擎,Object.defineProperty
最好不要填充Array.prototype
方法,因为您无法使它们不可枚举。
规范
Specification |
Status |
Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of '%TypedArray%.prototype.slice' in that specification. |
Standard |
Initial definition. |
ECMAScript Latest Draft (ECMA-262)The definition of '%TypedArray%.prototype.slice' in that specification. |
Living Standard |
|
浏览器兼容性
Feature |
Chrome |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|
Basic support |
45 |
38 (38) |
No support |
No support |
No support |
Feature |
Android |
Chrome for Android |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
Basic support |
No support |
No support |
38 (38) |
No support |
No support |
No support |
TypedArray相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络