From 955e5a2a675f84bbe7f3571825eb4ac01dc685a0 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 12 Jan 2022 08:47:37 +0900 Subject: SharedArrayBuffer オブジェクトの記事を更新準備 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharedarraybuffer/bytelength/index.html | 53 -------- .../sharedarraybuffer/bytelength/index.md | 53 ++++++++ .../global_objects/sharedarraybuffer/index.html | 140 --------------------- .../global_objects/sharedarraybuffer/index.md | 140 +++++++++++++++++++++ .../sharedarraybuffer/sharedarraybuffer/index.html | 75 ----------- .../sharedarraybuffer/sharedarraybuffer/index.md | 75 +++++++++++ .../sharedarraybuffer/slice/index.html | 78 ------------ .../sharedarraybuffer/slice/index.md | 78 ++++++++++++ 8 files changed, 346 insertions(+), 346 deletions(-) delete mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.md delete mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.md delete mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md delete mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.md (limited to 'files') diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html deleted file mode 100644 index 8a2f170890..0000000000 --- a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: SharedArrayBuffer.prototype.byteLength -slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength -tags: - - JavaScript - - Property - - Shared Memory - - SharedArrayBuffer - - TypedArrays -translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength ---- -
{{JSRef}}
- -

byteLength アクセサープロパティは 、{{jsxref("SharedArrayBuffer")}} の長さをバイト単位で表します。

- -
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-bytelength.html","shorter")}}
- - - -

解説

- -

byteLength プロパティは、セットアクセサー関数が undefined であるアクセサープロパティです。つまり、このプロパティは読み取り専用です。値は共有配列が生成されたときに決定され、変更できません。

- -

- -

byteLength の使用

- -
var sab = new SharedArrayBuffer(1024);
-sab.byteLength; // 1024
-
- -

仕様書

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-get-sharedarraybuffer.prototype.bytelength', 'SharedArrayBuffer.prototype.byteLength')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.builtins.SharedArrayBuffer.byteLength")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.md b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.md new file mode 100644 index 0000000000..8a2f170890 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.md @@ -0,0 +1,53 @@ +--- +title: SharedArrayBuffer.prototype.byteLength +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength +tags: + - JavaScript + - Property + - Shared Memory + - SharedArrayBuffer + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength +--- +
{{JSRef}}
+ +

byteLength アクセサープロパティは 、{{jsxref("SharedArrayBuffer")}} の長さをバイト単位で表します。

+ +
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-bytelength.html","shorter")}}
+ + + +

解説

+ +

byteLength プロパティは、セットアクセサー関数が undefined であるアクセサープロパティです。つまり、このプロパティは読み取り専用です。値は共有配列が生成されたときに決定され、変更できません。

+ +

+ +

byteLength の使用

+ +
var sab = new SharedArrayBuffer(1024);
+sab.byteLength; // 1024
+
+ +

仕様書

+ + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-get-sharedarraybuffer.prototype.bytelength', 'SharedArrayBuffer.prototype.byteLength')}}
+ +

ブラウザーの互換性

+ +

{{Compat("javascript.builtins.SharedArrayBuffer.byteLength")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.html b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.html deleted file mode 100644 index d1b478f388..0000000000 --- a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.html +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: SharedArrayBuffer -slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer -tags: - - Class - - JavaScript - - Shared Memory - - SharedArrayBuffer - - TypedArrays -browser-compat: javascript.builtins.SharedArrayBuffer -translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer ---- -
{{JSRef}}
- -

SharedArrayBuffer オブジェクトは、固定長の生バイナリデータバッファーのジェネリックを表すために使用されます。{{jsxref("ArrayBuffer")}} オブジェクトと似ていますが、こちらは共有メモリー上にビューを生成するために使用されます。 ArrayBuffer と異なり、SharedArrayBuffer は分離できません。

- -

解説

- -

メモリーの割り当てと共有

- -

クラスター内のあるエージェントから別のエージェント (エージェントとは、ウェブページのメインプログラムまたはそのウェブワーカーのひとつ) へ、{{jsxref("SharedArrayBuffer")}} オブジェクトを使用してメモリーを共有するために、postMessage構造化クローンを使用します。

- -

構造化クローンアルゴリズムは SharedArrayBuffers と、SharedArrayBuffers にマッピングされた TypedArrays を受け入れます。どちらの場合も SharedArrayBuffer オブジェクトは受信者に転送されて、受信側のエージェントで新たなプライベートの SharedArrayBuffer オブジェクトになります ({{jsxref("ArrayBuffer")}} と同じように)。しかし、2 つの SharedArrayBuffer オブジェクトから参照される共有データブロックは同一のデータブロックであり、あるエージェントによるブロックへの副作用は、結果的に他方のエージェントからも見えます。

- -
var sab = new SharedArrayBuffer(1024);
-worker.postMessage(sab);
-
- -

Atomic 操作による共有メモリーを更新や同期

- -

共有メモリーは、ワーカー内でもメインスレッド内でも同時に生成や更新ができます。システム (CPU、 OS、ブラウザー) によっては、変更がすべてのコンテキストに通知されるまでに少々時間がかかります。同期するためには、{{jsxref("Atomics", "atomic", "", 1)}} 操作が必要です。

- -

SharedArrayBuffer オブジェクトを使用する API

- - - -

セキュリティの要件

- -

共有メモリーと高解像度タイマーは、 Spectre の対策として 2018 年の初めに事実上無効化されました。 2020 年には、共有メモリを再び有効にするために、新しい安全なアプローチが標準化されました。いくつかのセキュリティ対策を施すことで、 postMessage()SharedArrayBuffer オブジェクトに対して例外を発生しなくなり、スレッド間の共有メモリが利用できるようになります。

- -

基本的な要件として、文書が安全なコンテキストにある必要があります。

- -

最上位の文書では、サイトにオリジン間の分離性を持たせるため、次の2つのヘッダーを設定する必要があります。

- - - -
Cross-Origin-Opener-Policy: same-origin
-Cross-Origin-Embedder-Policy: require-corp
-
- -

オリジン間の分離が成功したかどうかは、ウィンドウとワーカーのコンテキストで利用できる crossOriginIsolated プロパティを使って確認することができます。

- -
if (crossOriginIsolated) {
-  // Post SharedArrayBuffer
-} else {
-  // Do something else
-}
- -

また、ブラウザー (Firefox 79など) で展開され始めている共有メモリーの計画的な変更も参照してください。

- -

SharedArrayBuffer の生成には new 演算子が必要

- -

SharedArrayBuffer コンストラクターは、{{jsxref("Operators/new", "new")}} 演算子で呼び出す必要があります。new 演算子なしで関数として SharedArrayBuffer コンストラクターを呼び出すと、{{jsxref("TypeError")}} が発生します。

- -
var sab = SharedArrayBuffer(1024);
-// TypeError: calling a builtin SharedArrayBuffer constructor
-// without new is forbidden
- -
var sab = new SharedArrayBuffer(1024);
- -

コンストラクター

- -
-
SharedArrayBuffer()
-
新しい SharedArrayBuffer オブジェクトを生成します。
-
- -

インスタンスプロパティ

- -
-
{{jsxref("SharedArrayBuffer.prototype.byteLength")}}
-
配列の大きさをバイト数で表します。これは配列が構築されたときに確立され、変更することはできません。読み取り専用です。
-
- -

インスタンスメソッド

- -
-
{{jsxref("SharedArrayBuffer.slice", "SharedArrayBuffer.prototype.slice(begin, end)")}}
-
新しい SharedArrayBuffer を作成し、その中身をこの SharedArrayBufferbegin の位置から end の位置の一つ手前までのバイトをコピーして返します。 begin または end が負の数の場合は、配列の先頭からではなく末尾からの位置で参照します。
-
- -

- -

新しい SharedArrayBuffer の生成

- -
var sab = new SharedArrayBuffer(1024);
- -

SharedArrayBuffer の分割

- -
sab.slice();    // SharedArrayBuffer { byteLength: 1024 }
-sab.slice(2);   // SharedArrayBuffer { byteLength: 1022 }
-sab.slice(-2);  // SharedArrayBuffer { byteLength: 2 }
-sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
- -

WebGL バッファー内での使用

- -
const canvas = document.querySelector('canvas');
-const gl = canvas.getContext('webgl');
-const buffer = gl.createBuffer();
-gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
-gl.bufferData(gl.ARRAY_BUFFER, sab, gl.STATIC_DRAW);
- -

仕様書

- -{{Specifications}} - -

ブラウザーの互換性

- -

{{Compat}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.md b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.md new file mode 100644 index 0000000000..d1b478f388 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/index.md @@ -0,0 +1,140 @@ +--- +title: SharedArrayBuffer +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +tags: + - Class + - JavaScript + - Shared Memory + - SharedArrayBuffer + - TypedArrays +browser-compat: javascript.builtins.SharedArrayBuffer +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +--- +
{{JSRef}}
+ +

SharedArrayBuffer オブジェクトは、固定長の生バイナリデータバッファーのジェネリックを表すために使用されます。{{jsxref("ArrayBuffer")}} オブジェクトと似ていますが、こちらは共有メモリー上にビューを生成するために使用されます。 ArrayBuffer と異なり、SharedArrayBuffer は分離できません。

+ +

解説

+ +

メモリーの割り当てと共有

+ +

クラスター内のあるエージェントから別のエージェント (エージェントとは、ウェブページのメインプログラムまたはそのウェブワーカーのひとつ) へ、{{jsxref("SharedArrayBuffer")}} オブジェクトを使用してメモリーを共有するために、postMessage構造化クローンを使用します。

+ +

構造化クローンアルゴリズムは SharedArrayBuffers と、SharedArrayBuffers にマッピングされた TypedArrays を受け入れます。どちらの場合も SharedArrayBuffer オブジェクトは受信者に転送されて、受信側のエージェントで新たなプライベートの SharedArrayBuffer オブジェクトになります ({{jsxref("ArrayBuffer")}} と同じように)。しかし、2 つの SharedArrayBuffer オブジェクトから参照される共有データブロックは同一のデータブロックであり、あるエージェントによるブロックへの副作用は、結果的に他方のエージェントからも見えます。

+ +
var sab = new SharedArrayBuffer(1024);
+worker.postMessage(sab);
+
+ +

Atomic 操作による共有メモリーを更新や同期

+ +

共有メモリーは、ワーカー内でもメインスレッド内でも同時に生成や更新ができます。システム (CPU、 OS、ブラウザー) によっては、変更がすべてのコンテキストに通知されるまでに少々時間がかかります。同期するためには、{{jsxref("Atomics", "atomic", "", 1)}} 操作が必要です。

+ +

SharedArrayBuffer オブジェクトを使用する API

+ + + +

セキュリティの要件

+ +

共有メモリーと高解像度タイマーは、 Spectre の対策として 2018 年の初めに事実上無効化されました。 2020 年には、共有メモリを再び有効にするために、新しい安全なアプローチが標準化されました。いくつかのセキュリティ対策を施すことで、 postMessage()SharedArrayBuffer オブジェクトに対して例外を発生しなくなり、スレッド間の共有メモリが利用できるようになります。

+ +

基本的な要件として、文書が安全なコンテキストにある必要があります。

+ +

最上位の文書では、サイトにオリジン間の分離性を持たせるため、次の2つのヘッダーを設定する必要があります。

+ + + +
Cross-Origin-Opener-Policy: same-origin
+Cross-Origin-Embedder-Policy: require-corp
+
+ +

オリジン間の分離が成功したかどうかは、ウィンドウとワーカーのコンテキストで利用できる crossOriginIsolated プロパティを使って確認することができます。

+ +
if (crossOriginIsolated) {
+  // Post SharedArrayBuffer
+} else {
+  // Do something else
+}
+ +

また、ブラウザー (Firefox 79など) で展開され始めている共有メモリーの計画的な変更も参照してください。

+ +

SharedArrayBuffer の生成には new 演算子が必要

+ +

SharedArrayBuffer コンストラクターは、{{jsxref("Operators/new", "new")}} 演算子で呼び出す必要があります。new 演算子なしで関数として SharedArrayBuffer コンストラクターを呼び出すと、{{jsxref("TypeError")}} が発生します。

+ +
var sab = SharedArrayBuffer(1024);
+// TypeError: calling a builtin SharedArrayBuffer constructor
+// without new is forbidden
+ +
var sab = new SharedArrayBuffer(1024);
+ +

コンストラクター

+ +
+
SharedArrayBuffer()
+
新しい SharedArrayBuffer オブジェクトを生成します。
+
+ +

インスタンスプロパティ

+ +
+
{{jsxref("SharedArrayBuffer.prototype.byteLength")}}
+
配列の大きさをバイト数で表します。これは配列が構築されたときに確立され、変更することはできません。読み取り専用です。
+
+ +

インスタンスメソッド

+ +
+
{{jsxref("SharedArrayBuffer.slice", "SharedArrayBuffer.prototype.slice(begin, end)")}}
+
新しい SharedArrayBuffer を作成し、その中身をこの SharedArrayBufferbegin の位置から end の位置の一つ手前までのバイトをコピーして返します。 begin または end が負の数の場合は、配列の先頭からではなく末尾からの位置で参照します。
+
+ +

+ +

新しい SharedArrayBuffer の生成

+ +
var sab = new SharedArrayBuffer(1024);
+ +

SharedArrayBuffer の分割

+ +
sab.slice();    // SharedArrayBuffer { byteLength: 1024 }
+sab.slice(2);   // SharedArrayBuffer { byteLength: 1022 }
+sab.slice(-2);  // SharedArrayBuffer { byteLength: 2 }
+sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
+ +

WebGL バッファー内での使用

+ +
const canvas = document.querySelector('canvas');
+const gl = canvas.getContext('webgl');
+const buffer = gl.createBuffer();
+gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+gl.bufferData(gl.ARRAY_BUFFER, sab, gl.STATIC_DRAW);
+ +

仕様書

+ +{{Specifications}} + +

ブラウザーの互換性

+ +

{{Compat}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.html b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.html deleted file mode 100644 index 37b61d1421..0000000000 --- a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: SharedArrayBuffer() コンストラクター -slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer -tags: - - Constructor - - JavaScript - - Reference - - SharedArrayBuffer -translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer ---- -
{{JSRef}}
- -
-

Spectre の対策として、 SharedArrayBuffer は2018年1月5日にすべての主要ブラウザーで既定で無効化されたことに注意してください。 Chrome は、 Spectre スタイルの脆弱性から保護するためにサイトアイソレーション機能が有効になっているプラットフォームでは、 v67 で再有効化しました

-
- -

SharedArrayBuffer() コンストラクターは {{jsxref("SharedArrayBuffer")}} オブジェクトを生成し、これは {{jsxref("ArrayBuffer")}} オブジェクトと似た、汎用的な、固定長の生のバイナリデータバッファーを表します。

- -
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-constructor.html","shorter")}}
- - - -

構文

- -
new SharedArrayBuffer([length])
- -

引数

- -
-
length
-
生成する配列バッファーの長さをバイト数で指定します。
-
- -

返値

- -

指定された長さの新しい SharedArrayBuffer オブジェクトです。中身は 0 で初期化されます。

- -

- -

SharedArrayBuffer を生成するには常に new 演算子を使用する

- -

SharedArrayBuffer コンストラクターは {{jsxref("Operators/new", "new")}} 演算子で構築する必要があります。 SharedArrayBuffer コンストラクターを new なしで呼び出すと、 {{jsxref("TypeError")}} が発生します。

- -
var sab = SharedArrayBuffer(1024);
-// TypeError: calling a builtin SharedArrayBuffer constructor
-// without new is forbidden
- -
var sab = new SharedArrayBuffer(1024);
- -

仕様書

- - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-sharedarraybuffer-constructor', 'SharedArrayBuffer constructor')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.builtins.SharedArrayBuffer.SharedArrayBuffer")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md new file mode 100644 index 0000000000..37b61d1421 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/sharedarraybuffer/index.md @@ -0,0 +1,75 @@ +--- +title: SharedArrayBuffer() コンストラクター +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer +tags: + - Constructor + - JavaScript + - Reference + - SharedArrayBuffer +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer +--- +
{{JSRef}}
+ +
+

Spectre の対策として、 SharedArrayBuffer は2018年1月5日にすべての主要ブラウザーで既定で無効化されたことに注意してください。 Chrome は、 Spectre スタイルの脆弱性から保護するためにサイトアイソレーション機能が有効になっているプラットフォームでは、 v67 で再有効化しました

+
+ +

SharedArrayBuffer() コンストラクターは {{jsxref("SharedArrayBuffer")}} オブジェクトを生成し、これは {{jsxref("ArrayBuffer")}} オブジェクトと似た、汎用的な、固定長の生のバイナリデータバッファーを表します。

+ +
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-constructor.html","shorter")}}
+ + + +

構文

+ +
new SharedArrayBuffer([length])
+ +

引数

+ +
+
length
+
生成する配列バッファーの長さをバイト数で指定します。
+
+ +

返値

+ +

指定された長さの新しい SharedArrayBuffer オブジェクトです。中身は 0 で初期化されます。

+ +

+ +

SharedArrayBuffer を生成するには常に new 演算子を使用する

+ +

SharedArrayBuffer コンストラクターは {{jsxref("Operators/new", "new")}} 演算子で構築する必要があります。 SharedArrayBuffer コンストラクターを new なしで呼び出すと、 {{jsxref("TypeError")}} が発生します。

+ +
var sab = SharedArrayBuffer(1024);
+// TypeError: calling a builtin SharedArrayBuffer constructor
+// without new is forbidden
+ +
var sab = new SharedArrayBuffer(1024);
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-sharedarraybuffer-constructor', 'SharedArrayBuffer constructor')}}
+ +

ブラウザーの互換性

+ +

{{Compat("javascript.builtins.SharedArrayBuffer.SharedArrayBuffer")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.html b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.html deleted file mode 100644 index fb48139512..0000000000 --- a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: SharedArrayBuffer.prototype.slice() -slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice -tags: - - JavaScript - - Method - - Prototype - - Shared Memory - - SharedArrayBuffer - - TypedArrays -translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice ---- -
{{JSRef}}
- -

SharedArrayBuffer.prototype.slice() メソッドは、新しい {{jsxref("SharedArrayBuffer")}} を生成し、その内容にこの SharedArrayBuffer のバイトを先頭位置 (含む) から末尾位置 (含まない) までをコピーして返します。先頭または末尾が負の値であった場合は、配列の先頭からではなく、末尾からのインデックスになります。このメソッドは {{jsxref("Array.prototype.slice()")}} と同じアルゴリズムです。

- -
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-slice.html")}}
- - - -

構文

- -
sab.slice()
-sab.slice(begin)
-sab.slice(begin, end)
- -

引数

- -
-
begin {{optional_inline}}
-
取り出す先頭位置を表す 0 から始まるインデックスです。
-
負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(-2) は並びの最後の2つの要素を取り出します。
-
If begin が undefined であった場合は、 slice はインデックス 0 から取り出し始めます。
-
end {{optional_inline}}
-
0 から始まるインデックスで、取り出す範囲の末尾のを示します。 slice はここまでを取り出しますが、 end は含めません。
-
例えば、 slice(1,4) は2番目から4番目までの要素を取り出します (添字が 1, 2, 3 の要素)。
-
負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(2,-1) は3番目から、並びの最後から2番目までの要素を取り出します。
-
end が省略されると、 slice は並びの最後までの範囲を取り出します。 (sab.byteLength).
-
- -

返値

- -

取り出した要素をが入った新しい {{jsxref("SharedArrayBuffer")}} です。

- -

- -

slice() の使用

- -
var sab = new SharedArrayBuffer(1024);
-sab.slice();    // SharedArrayBuffer { byteLength: 1024 }
-sab.slice(2);   // SharedArrayBuffer { byteLength: 1022 }
-sab.slice(-2);  // SharedArrayBuffer { byteLength: 2 }
-sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
-
- -

仕様書

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-sharedarraybuffer.prototype.slice', 'SharedArrayBuffer.prototype.slice')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.builtins.SharedArrayBuffer.slice")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.md b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.md new file mode 100644 index 0000000000..fb48139512 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/sharedarraybuffer/slice/index.md @@ -0,0 +1,78 @@ +--- +title: SharedArrayBuffer.prototype.slice() +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice +tags: + - JavaScript + - Method + - Prototype + - Shared Memory + - SharedArrayBuffer + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice +--- +
{{JSRef}}
+ +

SharedArrayBuffer.prototype.slice() メソッドは、新しい {{jsxref("SharedArrayBuffer")}} を生成し、その内容にこの SharedArrayBuffer のバイトを先頭位置 (含む) から末尾位置 (含まない) までをコピーして返します。先頭または末尾が負の値であった場合は、配列の先頭からではなく、末尾からのインデックスになります。このメソッドは {{jsxref("Array.prototype.slice()")}} と同じアルゴリズムです。

+ +
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-slice.html")}}
+ + + +

構文

+ +
sab.slice()
+sab.slice(begin)
+sab.slice(begin, end)
+ +

引数

+ +
+
begin {{optional_inline}}
+
取り出す先頭位置を表す 0 から始まるインデックスです。
+
負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(-2) は並びの最後の2つの要素を取り出します。
+
If begin が undefined であった場合は、 slice はインデックス 0 から取り出し始めます。
+
end {{optional_inline}}
+
0 から始まるインデックスで、取り出す範囲の末尾のを示します。 slice はここまでを取り出しますが、 end は含めません。
+
例えば、 slice(1,4) は2番目から4番目までの要素を取り出します (添字が 1, 2, 3 の要素)。
+
負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(2,-1) は3番目から、並びの最後から2番目までの要素を取り出します。
+
end が省略されると、 slice は並びの最後までの範囲を取り出します。 (sab.byteLength).
+
+ +

返値

+ +

取り出した要素をが入った新しい {{jsxref("SharedArrayBuffer")}} です。

+ +

+ +

slice() の使用

+ +
var sab = new SharedArrayBuffer(1024);
+sab.slice();    // SharedArrayBuffer { byteLength: 1024 }
+sab.slice(2);   // SharedArrayBuffer { byteLength: 1022 }
+sab.slice(-2);  // SharedArrayBuffer { byteLength: 2 }
+sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
+
+ +

仕様書

+ + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-sharedarraybuffer.prototype.slice', 'SharedArrayBuffer.prototype.slice')}}
+ +

ブラウザーの互換性

+ +

{{Compat("javascript.builtins.SharedArrayBuffer.slice")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf