このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Int8Array() コンストラクター

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

>

Int8Array() は型付き配列のコンストラクターで、 2 の補数形式の 8 ビット符号付き整数値の型付き配列を生成します。中身は 0 で初期化されます。生成されると、配列の中の要素はオブジェクトのメソッドを使用するか、配列の標準的な添字の構文を使用するか (すなわち、ブラケット構文を使用するか) して参照することができます。

構文

new Int8Array(); // new in ES2017
new Int8Array(length);
new Int8Array(typedArray);
new Int8Array(object);
new Int8Array(buffer [, byteOffset [, length]]);

引数

length

length 引数付きで呼び出されると、メモリ内に内部的な配列バッファーを作成し、大きさは length BYTES_PER_ELEMENT で乗じたバイト数になり、ゼロになることもあります。

typedArray

typedArray 引数付きで呼び出されると、これはあらゆる型付き配列型 (例えば Int32Array) にすることができますが、 typedArray を新しい型付き配列にコピーします。 typedArray の中のそれぞれの値は、新しい配列にコピーされる前にコンストラクターの対応する型に変換されます。新しい型付き配列の長さは typedArray 引数の長さと同じになります。

object

object 引数付きで呼び出されると、あたかも TypedArray.from() メソッドであるかのように新しい型付き配列が生成されます。

buffer, byteOffset, length

buffer と、オプションで byteOffsetlength 引数を指定して呼び出されると、指定された ArrayBuffer を表示する型付き配列ビューが生成されます。 byteOffset および length 引数は、型付き配列ビューが表示するメモリ範囲を指定する。 両方を省略した場合は buffer の全てを表示し、 length のみを省略した場合は buffer の残りを表示します。

>

様々な方法による Int8Array の生成

js
// 長さの指定
var int8 = new Int8Array(2);
int8[0] = 42;
console.log(int8[0]); // 42
console.log(int8.length); // 2
console.log(int8.BYTES_PER_ELEMENT); // 1

// 配列から
var arr = new Int8Array([21, 31]);
console.log(arr[1]); // 31

// 他の型付き配列から
var x = new Int8Array([21, 31]);
var y = new Int8Array(x);
console.log(y[0]); // 21

// ArrayBuffer から
var buffer = new ArrayBuffer(8);
var z = new Int8Array(buffer, 1, 4);

// 反復可能オブジェクトから
var iterable = (function* () {
  yield* [1, 2, 3];
})();
var int8 = new Int8Array(iterable);
// Int8Array[1, 2, 3]

仕様書

仕様書
ECMAScript® 2027 Language Specification>
# sec-typedarray-constructors>

ブラウザーの互換性

互換性メモ

ECMAScript 2015 から、 Int8Array コンストラクターは構築に new 演算子が必要になりました。 Int8Array コンストラクターを new なしで関数として呼び出すと、 TypeError が発生するようになりました。

js
var dv = Int8Array([1, 2, 3]);
// TypeError: calling a builtin Int8Array constructor
// without new is forbidden
js
var dv = new Int8Array([1, 2, 3]);

関連情報