diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-09 20:09:16 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-09 20:09:16 +0900 |
commit | 0d85f77dda5f7f6d61eafa0587af3f1ef61a3005 (patch) | |
tree | a5b8601be16df4f4ac154360f04a0b268898d3a7 /files/ja/web/javascript/reference/global_objects | |
parent | 7144ca0458a33571ade432951827e61443d85ff5 (diff) | |
download | translated-content-0d85f77dda5f7f6d61eafa0587af3f1ef61a3005.tar.gz translated-content-0d85f77dda5f7f6d61eafa0587af3f1ef61a3005.tar.bz2 translated-content-0d85f77dda5f7f6d61eafa0587af3f1ef61a3005.zip |
Global_Objects/DataView 以下を更新 (#2297)
- Global_Objects/DataView を 2021/09/01 時点の英語版に同期
- getBigInt64(), getBigUint64(), setBigInt64(), setBigUint64() 新規翻訳
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects')
6 files changed, 431 insertions, 162 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/dataview/getbigint64/index.md b/files/ja/web/javascript/reference/global_objects/dataview/getbigint64/index.md new file mode 100644 index 0000000000..9570e8227f --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/dataview/getbigint64/index.md @@ -0,0 +1,71 @@ +--- +title: DataView.prototype.getBigInt64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getBigInt64 +tags: + - BigInt + - DataView + - JavaScript + - Method + - Prototype + - Reference + - TypedArrays + - getBigInt64() +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getBigInt64 +browser-compat: javascript.builtins.DataView.getBigInt64 +--- +{{JSRef}} + +**`getBigInt64()`** メソッドは、符号つき 64 ビット整数 (long long) を {{jsxref("DataView")}} の先頭からのバイト単位のオフセット位置から取得します。 + +{{EmbedInteractiveExample("pages/js/dataview-getbigint64.html")}} + +## 構文 + +```js +getBigInt64(byteOffset) +getBigInt64(byteOffset, littleEndian) +``` + +### 引数 + +- byteOffset + - : データを読み取るビューの先頭からのバイト単位のオフセットです。 +- littleEndian + - : {{optional_inline}} 64 ビット整数を[リトルエンディアンまたはビッグエンディアン](/ja/docs/Glossary/Endianness)のどちらの形式で格納されているかを示します。 `false` または `undefined` の場合、ビッグエンディアンの値が読み取られます。 + +### 返値 + +{{jsxref("BigInt")}} です。 + +### 発生するエラー + +- {{jsxref("RangeError")}} + - : `byteOffset` がビューの末尾を超えて読み取るような値に設定されたときに発生します。 + +## 解説 + +アライメントの制約はありません。複数バイトの値はどのオフセットからでも読み取ることができます。 + +## 例 + +### `getBigInt64` メソッドの使用 + +```js +var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.getBigInt64(0); // 0n +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{jsxref("DataView")}} +- {{jsxref("ArrayBuffer")}} +- {{jsxref("BigInt")}} diff --git a/files/ja/web/javascript/reference/global_objects/dataview/getbiguint64/index.md b/files/ja/web/javascript/reference/global_objects/dataview/getbiguint64/index.md new file mode 100644 index 0000000000..8547f34125 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/dataview/getbiguint64/index.md @@ -0,0 +1,71 @@ +--- +title: DataView.prototype.getBigUint64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getBigUint64 +tags: + - BigInt + - DataView + - JavaScript + - Method + - Prototype + - Reference + - TypedArrays + - getBigUint64 +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getBigUint64 +browser-compat: javascript.builtins.DataView.getBigUint64 +--- +{{JSRef}} + +**`getBigInt64()`** メソッドは、符号なし 64 ビット整数 (unsigned long long) を {{jsxref("DataView")}} の先頭からのバイト単位のオフセット位置から取得します。 + +{{EmbedInteractiveExample("pages/js/dataview-getbiguint64.html")}} + +## 構文 + +```js +getBigUint64(byteOffset) +getBigUint64(byteOffset, littleEndian) +``` + +### 引数 + +- byteOffset + - : データを読み取るビューの先頭からのバイト単位のオフセットです。 +- littleEndian + - : {{optional_inline}} 64 ビット整数を[リトルエンディアンまたはビッグエンディアン](/ja/docs/Glossary/Endianness)のどちらの形式で格納されているかを示します。 `false` または `undefined` の場合、ビッグエンディアンの値が読み取られます。 + +### 返値 + +{{jsxref("BigInt")}} です。 + +### 発生するエラー + +- {{jsxref("RangeError")}} + - : `byteOffset` がビューの末尾を超えて読み取るような値に設定されたときに発生します。 + +## 解説 + +アライメントの制約はありません。複数バイトの値はどのオフセットからでも読み取ることができます。 + +## 例 + +### `getBigUint64` メソッドの使用 + +```js +var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.getBigUint64(0); // 0n +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{jsxref("DataView")}} +- {{jsxref("ArrayBuffer")}} +- {{jsxref("BigInt")}} diff --git a/files/ja/web/javascript/reference/global_objects/dataview/index.html b/files/ja/web/javascript/reference/global_objects/dataview/index.html deleted file mode 100644 index c53ce5dfdd..0000000000 --- a/files/ja/web/javascript/reference/global_objects/dataview/index.html +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: DataView -slug: Web/JavaScript/Reference/Global_Objects/DataView -tags: - - Class - - DataView - - JavaScript - - TypedArrays -translation_of: Web/JavaScript/Reference/Global_Objects/DataView ---- -<div>{{JSRef}}</div> - -<p><span class="seoSummary"><strong><code>DataView</code></strong> ビューは {{jsxref("ArrayBuffer")}} の多様な数値型を、プラットフォームの{{glossary("Endianness", "エンディアン")}}に関係なく読み書きするための低水準インターフェイスを提供します。</span></p> - -<h2 id="Description" name="Description">説明</h2> - -<h3 id="Endianness" name="Endianness">エンディアン</h3> - -<p>多バイトの数値形式は、マシンアーキテクチャによってメモリー内での表現が異なります。これは {{Glossary("Endianness", "エンディアン")}}で説明しています。DataView のアクセサーは、プラットフォームアーキテクチャのエンディアンに関係なくデータにアクセスする方法を明確に制御する手段を提供します。</p> - -<pre class="brush: js notranslate">var littleEndian = (function() { - var buffer = new ArrayBuffer(2); - new DataView(buffer).setInt16(0, 256, true /* リトルエンディアン */); - // Int16Array はプラットフォームのエンディアンを使用する - return new Int16Array(buffer)[0] === 256; -})(); -console.log(littleEndian); // true または false -</pre> - -<h3 id="64-bit_Integer_Values" name="64-bit_Integer_Values">64 ビット整数値</h3> - -<p>JavaScript は現在のところ、64 ビット整数値に標準で対応していないので、<code>DataView</code> はネイティブの 64 ビット操作を提供していません。回避策として、独自で <code>getUint64()</code> 関数を実装して {{jsxref("Number.MAX_SAFE_INTEGER")}} までの制度の値を受け取れるようにします。</p> - -<pre class="brush: js notranslate">function getUint64(dataview, byteOffset, littleEndian) { - // 64 ビット数を 2 つの 32 ビット (4 バイト) の部分に分割する - const left = dataview.getUint32(byteOffset, littleEndian); - const right = dataview.getUint32(byteOffset+4, littleEndian); - - // 2 つの 32 ビットの値を結合する - const combined = littleEndian? left + 2**32*right : 2**32*left + right; - - if (!Number.isSafeInteger(combined)) - console.warn(combined, 'exceeds MAX_SAFE_INTEGER. Precision may be lost'); - - return combined; -} -</pre> - -<p>他にも、完全な 64 ビットの幅が必要な場合、{{jsxref("BigInt")}} を作成することもできます。さらに言えば、ネイティブの BigInt がユーザーランドライブラリの同等品よりもはるかに速いのですが、JavaScript では BigInt は可変長であるという性質上、常に 32 ビット整数よりもはるかに遅くなります。</p> - -<pre class="brush: js notranslate">const BigInt = window.BigInt, bigThirtyTwo = BigInt(32), bigZero = BigInt(0); -function getUint64BigInt(dataview, byteOffset, littleEndian) { - // 64 ビット数を 2 つの 32 ビット (4 バイト) の部分に分割する - const left = BigInt(dataview.getUint32(byteOffset|0, !!littleEndian)>>>0); - const right = BigInt(dataview.getUint32((byteOffset|0) + 4|0, !!littleEndian)>>>0); - - // 2 つの 32 ビットの値を結合して返す - return littleEndian ? (right<<bigThirtyTwo)|left : (left<<bigThirtyTwo)|right; -}</pre> - -<h2 id="Constructor" name="Constructor">コンストラクタ</h2> - -<dl> - <dt><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/DataView/DataView"><code>DataView()</code></a></dt> - <dd>新しい <code>DataView</code> オブジェクトを作成します。</dd> -</dl> - -<h2 id="Instance_properties" name="Instance_properties">インスタンスプロパティ</h2> - -<dl> - <dt>{{jsxref("DataView.prototype.buffer")}}</dt> - <dd>このビューによって参照される {{jsxref("ArrayBuffer")}} 。構築時に設定されるため、<strong>読取専用</strong>です。</dd> - <dt>{{jsxref("DataView.prototype.byteLength")}}</dt> - <dd>{{jsxref("ArrayBuffer")}} の開始位置からこのビューの(バイト単位の)長さ。構築時に設定されるため、<strong>読取専用</strong>です。</dd> - <dt>{{jsxref("DataView.prototype.byteOffset")}}</dt> - <dd>{{jsxref("ArrayBuffer")}} の開始位置からこのビューの(バイト単位の)オフセット。構築時に設定されるため、<strong>読取専用</strong>です。</dd> -</dl> - -<h2 id="Instance_methods" name="Instance_methods">インスタンスメソッド</h2> - -<dl> - <dt>{{jsxref("DataView.prototype.getInt8()")}}</dt> - <dd>ビューの開始位置から指定されたバイト単位のオフセットで符号付き 8 ビット整数値(byte)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getUint8()")}}</dt> - <dd>ビューの開始位置から指定されたバイト単位のオフセットで符号無し 8 ビット整数値(unsigned byte) を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getInt16()")}}</dt> - <dd>ビューの開始位置から指定されたバイト単位のオフセットで符号付き 16 ビット整数値(short)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getUint16()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号無し 16 ビット整数値(unsigned short)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getInt32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 32 ビット整数値(long)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getUint32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号無し 32 ビット整数値(unsigned long)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getFloat32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 32 ビット浮動小数点数(float)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getFloat64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 64 ビット浮動小数点数(double)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getBigInt64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 64 ビット整数値(long long)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.getBigUint64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号なし 64 ビット整数値(unsigned long long)を取得します。</dd> - <dt>{{jsxref("DataView.prototype.setInt8()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 8 ビット整数値(byte)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setUint8()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号なし 8 ビット整数値(unsigned byte)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setInt16()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 16 ビット整数値(short)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setUint16()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号無し 16 ビット整数値(unsigned short)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setInt32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 32 ビット整数値(long)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setUint32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号無し 32 ビット整数値(unsigned long)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setFloat32()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 32 ビット浮動小数点数(float)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setFloat64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 64 ビット浮動小数点数(double)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setBigInt64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号あり 64 ビット整数値(long long)を格納します。</dd> - <dt>{{jsxref("DataView.prototype.setBigUint64()")}}</dt> - <dd>ビューの開始位置からの指定されたバイト単位のオフセットで符号なし 64 ビット整数値(unsigned long long)を格納します。</dd> -</dl> - -<h2 id="Example" name="Example">例</h2> - -<h3 id="Using_DataView" name="Using_DataView">DataView を使用する</h3> - -<pre class="brush: js notranslate">var buffer = new ArrayBuffer(16); -var view = new DataView(buffer, 0); - -view.setInt16(1, 42); -view.getInt16(1); // 42 -</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-dataview-objects', 'DataView')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.DataView")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li><a class="link-https" href="https://github.com/jDataView/jDataView">jDataView</a>: <code>DataView</code> API をすべてのブラウザーや Node.js に展開するポリフィルの JavaScript ライブラリー</li> - <li>{{jsxref("ArrayBuffer")}}</li> - <li>{{jsxref("SharedArrayBuffer")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/dataview/index.md b/files/ja/web/javascript/reference/global_objects/dataview/index.md new file mode 100644 index 0000000000..3656042991 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/dataview/index.md @@ -0,0 +1,149 @@ +--- +title: DataView +slug: Web/JavaScript/Reference/Global_Objects/DataView +tags: + - Class + - DataView + - JavaScript + - TypedArrays + - Polyfill +browser-compat: javascript.builtins.DataView +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +{{JSRef}} + +**`DataView`** ビューは {{jsxref("ArrayBuffer")}} の多様な数値型を、プラットフォームの[エンディアン](/ja/docs/Glossary/Endianness)に関係なく読み書きするための低水準インターフェイスを提供します。 + +## 解説 + +### エンディアン + +多バイトの数値形式は、マシンアーキテクチャによってメモリー内での表現が異なります。説明は[エンディアン](/ja/docs/Glossary/Endianness)を参照してください。 `DataView` のアクセサーは、プラットフォームアーキテクチャのエンディアンに関係なくデータにアクセスする方法を明確に制御する手段を提供します。 + +```js +var littleEndian = (function() { + var buffer = new ArrayBuffer(2); + new DataView(buffer).setInt16(0, 256, true /* リトルエンディアン */); + // Int16Array はプラットフォームのエンディアンを使用する + return new Int16Array(buffer)[0] === 256; +})(); +console.log(littleEndian); // true または false +``` + +### 64 ビット整数値 + +一部のブラウザーは {{jsxref("DataView.prototype.setBigInt64()")}} および {{jsxref("DataView.prototype.setBigUint64()")}} に対応していません。そのため、各ブラウザーで動作するコードで 64 ビット操作ができるようにするには、独自の `getUint64()` 関数を実装し、 {{jsxref("Number.MAX_SAFE_INTEGER")}} までの制度の値を受け取れるようにします。これで十分な場合もあるでしょう。 + +```js +function getUint64(dataview, byteOffset, littleEndian) { + // 64 ビット数を 2 つの 32 ビット (4 バイト) の部分に分割する + const left = dataview.getUint32(byteOffset, littleEndian); + const right = dataview.getUint32(byteOffset+4, littleEndian); + + // 2 つの 32 ビットの値を結合する + const combined = littleEndian? left + 2**32*right : 2**32*left + right; + + if (!Number.isSafeInteger(combined)) + console.warn(combined, 'exceeds MAX_SAFE_INTEGER. Precision may be lost'); + + return combined; +} +``` + +他にも、完全な 64 ビットの幅が必要な場合、{{jsxref("BigInt")}} を作成することもできます。さらに言えば、ネイティブの BigInt はユーザーランドライブラリーの同等品よりもはるかに速いのですが、JavaScript では BigInt は可変長であるという性質上、常に 32 ビット整数よりもはるかに遅くなります。 + +```js +const BigInt = window.BigInt, bigThirtyTwo = BigInt(32), bigZero = BigInt(0); +function getUint64BigInt(dataview, byteOffset, littleEndian) { + // 64 ビット数を 2 つの 32 ビット (4 バイト) の部分に分割する + const left = BigInt(dataview.getUint32(byteOffset|0, !!littleEndian)>>>0); + const right = BigInt(dataview.getUint32((byteOffset|0) + 4|0, !!littleEndian)>>>0); + + // 2 つの 32 ビットの値を結合して返す + return littleEndian ? (right<<bigThirtyTwo)|left : (left<<bigThirtyTwo)|right; +} +``` + +## コンストラクター + +- [`DataView()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/DataView) + - : 新しい `DataView` オブジェクトを作成します。 + +## インスタンスプロパティ + +- {{jsxref("DataView.prototype.buffer")}} + - : このビューによって参照される {{jsxref("ArrayBuffer")}}。構築時に設定されるため、**読み取り専用**です。 +- {{jsxref("DataView.prototype.byteLength")}} + - : {{jsxref("ArrayBuffer")}} の開始位置からこのビューの (バイト単位の) 長さ。構築時に設定されるため、**読み取り専用**です。 +- {{jsxref("DataView.prototype.byteOffset")}} + - : {{jsxref("ArrayBuffer")}} の開始位置からこのビューの (バイト単位の) オフセット。構築時に設定されるため、**読み取り専用**です。 + +## インスタンスメソッド + +- {{jsxref("DataView.prototype.getInt8()")}} + - : ビューの開始位置から指定されたバイト単位のオフセット位置にある符号付き 8 ビット整数値 (byte) を取得します。 +- {{jsxref("DataView.prototype.getUint8()")}} + - : ビューの開始位置から指定されたバイト単位のオフセット位置にある符号無し 8 ビット整数値 (unsigned byte) を取得します。 +- {{jsxref("DataView.prototype.getInt16()")}} + - : ビューの開始位置から指定されたバイト単位のオフセット位置にある符号付き 16 ビット整数値 (short) を取得します。 +- {{jsxref("DataView.prototype.getUint16()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号無し 16 ビット整数値 (unsigned short) を取得します。 +- {{jsxref("DataView.prototype.getInt32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 32 ビット整数値 (long) を取得します。 +- {{jsxref("DataView.prototype.getUint32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号無し 32 ビット整数値 (unsigned long) を取得します。 +- {{jsxref("DataView.prototype.getFloat32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 32 ビット浮動小数点数 (float) を取得します。 +- {{jsxref("DataView.prototype.getFloat64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 64 ビット浮動小数点数 (double) を取得します。 +- {{jsxref("DataView.prototype.getBigInt64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 64 ビット整数値(long long) を取得します。 +- {{jsxref("DataView.prototype.getBigUint64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号なし 64 ビット整数値 (unsigned long long) を取得します。 +- {{jsxref("DataView.prototype.setInt8()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 8 ビット整数値 (byte) を格納します。 +- {{jsxref("DataView.prototype.setUint8()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号なし 8 ビット整数値 (unsigned byte) を格納します。 +- {{jsxref("DataView.prototype.setInt16()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 16 ビット整数値 (short) を格納します。 +- {{jsxref("DataView.prototype.setUint16()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号無し 16 ビット整数値 (unsigned short) を格納します。 +- {{jsxref("DataView.prototype.setInt32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 32 ビット整数値 (long) を格納します。 +- {{jsxref("DataView.prototype.setUint32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号無し 32 ビット整数値 (unsigned long) を格納します。 +- {{jsxref("DataView.prototype.setFloat32()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 32 ビット浮動小数点数 (float) を格納します。 +- {{jsxref("DataView.prototype.setFloat64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 64 ビット浮動小数点数 (double) を格納します。 +- {{jsxref("DataView.prototype.setBigInt64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号あり 64 ビット整数値 (long long) を格納します。 +- {{jsxref("DataView.prototype.setBigUint64()")}} + - : ビューの開始位置からの指定されたバイト単位のオフセット位置にある符号なし 64 ビット整数値 (unsigned long long) を格納します。 + +## 例 + +### DataView を使用する + +```js +var buffer = new ArrayBuffer(16); +var view = new DataView(buffer, 0); + +view.setInt16(1, 42); +view.getInt16(1); // 42 +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- `DataView` のポリフィルは [`core-js`](https://github.com/zloirock/core-js#ecmascript-typed-arrays) で利用できます +- [jDataView](https://github.com/jDataView/jDataView): `DataView` API をすべてのブラウザーや Node.js に展開するポリフィルの JavaScript ライブラリー +- {{jsxref("ArrayBuffer")}} +- {{jsxref("SharedArrayBuffer")}} diff --git a/files/ja/web/javascript/reference/global_objects/dataview/setbigint64/index.md b/files/ja/web/javascript/reference/global_objects/dataview/setbigint64/index.md new file mode 100644 index 0000000000..41c0c3ee9e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/dataview/setbigint64/index.md @@ -0,0 +1,70 @@ +--- +title: DataView.prototype.setBigInt64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setBigInt64 +tags: + - BigInt + - DataView + - JavaScript + - Method + - Prototype + - Reference + - TypedArrays + - setBigInt64 +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setBigInt64 +browser-compat: javascript.builtins.DataView.setBigInt64 +--- +{{JSRef}} + +**`setBigInt64()`** メソッドは、符号つき 64 ビット整数 (long long) を {{jsxref("DataView")}} の先頭からのバイト単位の指定されたオフセット位置に格納します。 + +{{EmbedInteractiveExample("pages/js/dataview-setbigint64.html")}} + +## 構文 + +```js +setBigInt64(byteOffset, value) +setBigInt64(byteOffset, value, littleEndian) +``` + +### 引数 + +- byteOffset + - : データを格納するビューの先頭からのバイト単位のオフセットです。 +- value + - : {{jsxref("BigInt")}} として設定する値です。符号つき 64 ビット整数に符合する最も大きな値は、 `2n ** (64n -1n) - 1n` (`9223372036854775807n`) です。これを上回ると、負の数 (`-9223372036854775808n`) になります。 +- littleEndian + - : {{optional_inline}} 64 ビット整数を[リトルエンディアンまたはビッグエンディアン](/ja/docs/Glossary/Endianness)のどちらの形式で格納するかを示します。 `false` または `undefined` の場合、ビッグエンディアンの値が書き込まれます。 + +### 返値 + +{{jsxref("undefined")}} です。 + +### 発生するエラー + +- {{jsxref("RangeError")}} + - : `byteOffset` がビューの末尾を超えて格納するような値に設定されたときに発生します。 + +## 例 + +### `setBigInt64` メソッドの使用 + +```js +var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.setBigInt64(0, 3n); +dataview.getBigInt64(0); // 3n +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{jsxref("DataView")}} +- {{jsxref("ArrayBuffer")}} +- {{jsxref("BigInt")}} diff --git a/files/ja/web/javascript/reference/global_objects/dataview/setbiguint64/index.md b/files/ja/web/javascript/reference/global_objects/dataview/setbiguint64/index.md new file mode 100644 index 0000000000..af54cbe905 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/dataview/setbiguint64/index.md @@ -0,0 +1,70 @@ +--- +title: DataView.prototype.setBigUint64() +slug: Web/JavaScript/Reference/Global_Objects/DataView/setBigUint64 +tags: + - BigInt + - DataView + - JavaScript + - Method + - Prototype + - Reference + - TypedArrays + - setBigUint64 +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/setBigUint64 +browser-compat: javascript.builtins.DataView.setBigUint64 +--- +{{JSRef}} + +**`setBigUint64()`** メソッドは、符号なし 64 ビット整数 (unsigned long long) を {{jsxref("DataView")}} の先頭からのバイト単位の指定されたオフセット位置に格納します。 + +{{EmbedInteractiveExample("pages/js/dataview-setbiguint64.html")}} + +## 構文 + +```js +setBigUint64(byteOffset, value) +setBigUint64(byteOffset, value, littleEndian) +``` + +### 引数 + +- byteOffset + - : データを格納するビューの先頭からのバイト単位のオフセットです。 +- value + - : {{jsxref("BigInt")}} として設定する値です。符号なし 64 ビット整数に符合する最も大きな値は、 `2n ** 64n - 1n` (`18446744073709551615n`) です。これを上回ると、ゼロ (`0n`) になります。 +- littleEndian + - : {{optional_inline}} 64 ビット整数を[リトルエンディアンまたはビッグエンディアン](/ja/docs/Glossary/Endianness)のどちらの形式で格納するかを示します。 `false` または `undefined` の場合、ビッグエンディアンの値が書き込まれます。 + +### 返値 + +{{jsxref("undefined")}} です。 + +### 発生するエラー + +- {{jsxref("RangeError")}} + - : `byteOffset` がビューの末尾を超えて格納するような値に設定されたときに発生します。 + +## 例 + +### `setBigUint64` メソッドの使用 + +```js +var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.setBigUint64(0, 3n); +dataview.getBigUint64(0); // 3n +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{jsxref("DataView")}} +- {{jsxref("ArrayBuffer")}} +- {{jsxref("BigInt")}} |