非常教程

JavaScript参考手册

SIMD

SIMD.Bool16x8

SIMD.js已经从TC39中取消了积极的开发,并从第三阶段中删除了。它不再被网页浏览器所追求。暴露在 web 上的SIMD 操作在 WebAssembly 中正处于积极的发展之中, 其操作基于 SIMD. js 操作。

SIMD.Bool16x8数据类型是一个128-bit的向量,被分成8个存储布尔值的通道。

语法

SIMD.Bool16x8(s0, s1, s2, s3, s4, s5, s6, s7);

参数

s[0-7]可选的

一个boolean布尔值,指定通道的值。默认为false

构造函数

除了简单的创建者函数外,SIMD API还提供以下构造函数。

SIMD.Bool16x8.splat()创建所有通道设置为给定值的Bool6x8。

注意: SIMD类型与new不起作用,因为SIMD值不是“盒装”对象(可参考String(s)new String(s)创建String对象的 比较)。

var v = new SIMD.Bool16x8(true, true, true, true, false, false, false, false); 
// TypeError: SIMD.Bool16x8 is not a constructor
var w = new SIMD.Bool16x8.splat(true); 
// TypeError: SIMD.Bool16x8.splat is not a constructor

与之替代的是:

var v = SIMD.Bool16x8(true, true, true, true, false, false, false, false);
var w = SIMD.Bool16x8.splat(true);

操作

要在 simd 类型中实际执行某些操作, 需要使用 simd 数据类型。

检查SIMD类型

SIMD.Bool16x8.check()如果参数是有效的Bool16x8数据类型,则返回新的Bool16x8。否则抛出TypeError

访问和变换通道

SIMD.Bool16x8.extractLane()Returns the value of the given lane.SIMD.Bool16x8.replaceLane()Returns a new Bool16x8 with the given lane value replaced.

布尔运算

SIMD.Bool16x8.allTrue()检查是否所有通道都有true值。

SIMD.Bool16x8.anyTrue()检查是否有某个通道true值。

按位逻辑操作

SIMD.Bool16x8.and()返回一个新的Bool16x8,带有通道值(a & b)的逻辑与。

SIMD.Bool16x8.or()返回一个新的Bool16x8,其逻辑或为通道值(a | b)。

SIMD.Bool16x8.xor()返回一个新的Bool16x8,其逻辑XOR为通道值(a ^ b)。

SIMD.Bool16x8.not()返回带有车道值(~a)的逻辑NOT的新的Bool16x8 。

SIMD原型

下面的方法和属性被安装在SIMD.Bool16x8.prototype

SIMD.Bool16x8.prototype.constructor指定创建SIMD对象原型的函数。

SIMD.Bool16x8.prototype.toLocaleString()返回表示SIMD类型及其元素的本地化字符串。重写该Object.prototype.toLocaleString()方法。

SIMD.Bool16x8.prototype.toString()返回表示SIMD类型及其元素的字符串。重写Object.prototype.toString()方法。

SIMD.Bool16x8.prototype.valueOf()返回SIMD对象的原始值。

SIMD.Bool16x8.prototype.toSource()返回表示对象源代码的字符串。重写该Object.prototype.toSource()方法。

例子

构建一个Bool16x8

SIMD.Bool16x8(true, true, true, true, false, false, false, false); 
// Bool16x8[true, true, true, true, false, false, false, false]

SIMD.Bool16x8(true, false);
// Bool16x8[true, false, false, false, false, false, false, false]

SIMD.Bool16x8();
// Bool16x8[false, false, false false, false, false, false, false]

规范

Specification

Status

Comment

SIMDThe definition of 'Bool16x8' in that specification.

Draft

Initial definition.

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

No support

Nightly build

Nightly build

No support

No support

No support

Feature

Android

Chrome for Android

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

No support

Nightly build

Nightly build

No support

No support

No support

JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络