pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/

®å€¤ã¯å¾Œè¿°ã™ã‚‹ã‚ˆã†ã«ç‰¹å®šã®è¦ç´ ã®åž‹ã«ãŠã‘る型付ãé…列ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã«ãªã‚Šã¾ã™ã€‚下記ã®ãƒšãƒ¼ã‚¸ã§ã€ãれãžã‚Œã®è¦ç´ ã‚’æŒã¤ç‰‡å¼•ãé…列ã§ä½¿ç”¨ã§ãる共通ã®ãƒ—ロパティやメソッドを確èªã§ãã¾ã™ã€‚" />

ã“ã®ãƒšãƒ¼ã‚¸ã¯ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã®å°½åŠ›ã§è‹±èªžã‹ã‚‰ç¿»è¨³ã•れã¾ã—ãŸã€‚MDN Web Docs コミュニティーã«ã¤ã„ã¦ã‚‚ã£ã¨çŸ¥ã‚Šã€ä»²é–“ã«ãªã‚‹ã«ã¯ã“ã¡ã‚‰ã‹ã‚‰ã€‚

View in English Always switch to English

TypedArray

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

TypedArray オブジェクトã¯ã€èƒŒå¾Œã«ã‚ã‚‹ãƒã‚¤ãƒŠãƒªãƒ¼ãƒ‡ãƒ¼ã‚¿ãƒãƒƒãƒ•ァーã®ã€é…列風ã®ãƒ“ューを表ã—ã¾ã™ã€‚ TypedArray ã¨ã„ã†åç§°ã®ã‚°ãƒ­ãƒ¼ãƒãƒ«ãƒ—ロパティãŒã‚ã‚‹ã‚ã‘ã§ã¯ãªãã€ã¾ãŸç›´æŽ¥ TypedArray コンストラクターãŒè¦‹ãˆã‚‹ã‚ã‘ã§ã¯ã‚りã¾ã›ã‚“。代ã‚りã«ã€ã•ã¾ã–ã¾ãªã‚°ãƒ­ãƒ¼ãƒãƒ«ãƒ—ロパティãŒã‚りã€ãれらã®å€¤ã¯å¾Œè¿°ã™ã‚‹ã‚ˆã†ã«ç‰¹å®šã®è¦ç´ ã®åž‹ã«ãŠã‘る型付ãé…列ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã«ãªã‚Šã¾ã™ã€‚下記ã®ãƒšãƒ¼ã‚¸ã§ã€ãれãžã‚Œã®è¦ç´ ã‚’æŒã¤ç‰‡å¼•ãé…列ã§ä½¿ç”¨ã§ãる共通ã®ãƒ—ロパティやメソッドを確èªã§ãã¾ã™ã€‚

解説

TypedArray コンストラクター(よã %TypedArray% ã¨è¡¨è¨˜ã•れã¾ã™ã€‚JavaScript プログラムã«å…¬é–‹ã•れるグローãƒãƒ«ã«å¯¾å¿œã™ã‚‹ã‚‚ã®ãŒã‚ã‚‹ã‚ã‘ã§ã¯ãªã„ãŸã‚ã€ã€Œå€‹åˆ¥ã®ã‚‚ã®ã€ã‚’表ã™ãŸã‚ã§ã™ï¼‰ã¯ã€ã™ã¹ã¦ã® TypedArray ã®ã‚µãƒ–クラスã®å…±é€šã®ã‚¹ãƒ¼ãƒ‘ークラスã¨ã—ã¦æ©Ÿèƒ½ã—ã¾ã™ã€‚%TypedArray% ã¯ã™ã¹ã¦ã®åž‹ä»˜ãé…列ã®ã‚µãƒ–クラスã«å¯¾ã—ã¦ãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ãƒ¡ã‚½ãƒƒãƒ‰ã®å…±é€šã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスをæä¾›ã™ã‚‹ã€ŒæŠ½è±¡ã‚¯ãƒ©ã‚¹ã€ã§ã‚ã‚‹ã¨è€ƒãˆã¦ãã ã•ã„。ã“ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã¯ç›´æŽ¥å…¬é–‹ã•れã¦ã„ã¾ã›ã‚“。グローãƒãƒ«ãƒ—ロパティã§ã‚ã‚‹ TypedArray プロパティã¯å­˜åœ¨ã—ã¾ã›ã‚“。Object.getPrototypeOf(Int8Array) ãªã©ã‚’通ã—ã¦ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

TypedArray ã®ã‚µãƒ–クラス(例ãˆã° Int8Array)ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã™ã‚‹éš›ã€é…列ãƒãƒƒãƒ•ァーãŒãƒ¡ãƒ¢ãƒªãƒ¼ã«å†…部作æˆã•れるã‹ã€ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã®å¼•æ•°ã« ArrayBuffer ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒæŒ‡å®šã•れるã¨ã€ä»£ã‚りã«ãã® ArrayBuffer を使用ã—ã¾ã™ã€‚ãƒãƒƒãƒ•ァーアドレスã¯ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®å†…部プロパティã¨ã—ã¦ä¿å­˜ã•れã€%TypedArray%.prototype ã®ã™ã¹ã¦ã®ãƒ¡ã‚½ãƒƒãƒ‰ãŒãã®é…列ãƒãƒƒãƒ•ァーアドレスã«åŸºã¥ã„ã¦å€¤ã‚’設定ã—ãŸã‚Šå–å¾—ã—ãŸã‚Šã—ã¾ã™ã€‚

TypedArray オブジェクト

åž‹ 値ã®ç¯„囲 サイズ (ãƒã‚¤ãƒˆæ•°) Web IDL åž‹
Int8Array -128 ã‹ã‚‰ 127 1 byte
Uint8Array 0 ã‹ã‚‰ 255 1 octet
Uint8ClampedArray 0 ã‹ã‚‰ 255 1 octet
Int16Array -32768 ã‹ã‚‰ 32767 2 short
Uint16Array 0 ã‹ã‚‰ 65535 2 unsigned short
Int32Array -2147483648 ã‹ã‚‰ 2147483647 4 long
Uint32Array 0 ã‹ã‚‰ 4294967295 4 unsigned long
Float16Array -65504 ã‹ã‚‰ 65504 2 ãªã—
Float32Array -3.4E38 ã‹ã‚‰ 3.4E38 ãŠã‚ˆã³ 1.2E-38 (最å°ã®æ­£ã®æ•°ï¼‰ 4 unrestricted float
Float64Array -1.8E308 ã‹ã‚‰ 1.8E308 ãŠã‚ˆã³ 5E-324 (最å°ã®æ­£ã®æ•°ï¼‰ 8 unrestricted double
BigInt64Array -263 to 263 - 1 8 bigint
BigUint64Array 0 to 264 - 1 8 bigint

値ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–¹å¼ã¨æ­£è¦åŒ–

ã™ã¹ã¦ã®åž‹ä»˜ãé…列㯠ArrayBuffer ã‚’æ“作ã—ã¦ã€å„è¦ç´ ã®æ­£ç¢ºãªãƒã‚¤ãƒˆè¡¨ç¾ã‚’見るã“ã¨ãŒã§ãã¾ã™ã®ã§ã€æ•°å€¤ãŒãƒã‚¤ãƒŠãƒªãƒ¼å½¢å¼ã§ã©ã®ã‚ˆã†ã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹ã‹ãŒé‡è¦ã§ã™ã€‚

  • 符å·ãªã—æ•´æ•°ã®é…列 (Uint8Array, Uint16Array, Uint32Array, BigUint64Array) ã¯ã€æ•°å€¤ã‚’直接ãƒã‚¤ãƒŠãƒªãƒ¼ã§æ ¼ç´ã—ã¾ã™ã€‚
  • 符å·ä»˜ãæ•´æ•°ã®é…列 (Int8Array, Int16Array, Int32Array, BigInt64Array) ã¯ã€æ•°å€¤ã‚’ 2 ã®è£œæ•°ã‚’用ã„ã¦æ ¼ç´ã—ã¾ã™ã€‚
  • æµ®å‹•å°æ•°ç‚¹ã®é…列 (Float16Array, Float32Array, Float64Array) 㯠IEEE 754 æµ®å‹•å°æ•°ç‚¹å½¢å¼ã‚’使用ã—ã¦æ•°å€¤ã‚’æ ¼ç´ã—ã¾ã™ã€‚ Number ã®ãƒªãƒ•ァレンスã«ã¯ã€æ­£ç¢ºãªå½¢å¼ã«ã¤ã„ã¦ã®è©³ç´°æƒ…å ±ãŒã‚りã¾ã™ã€‚ JavaScript ã®æ•°å€¤ã¯æ—¢å®šã§ã¯å€ç²¾åº¦æµ®å‹•å°æ•°ç‚¹æ•°ã§ã€ Float64Array ã¨åŒã˜å½¢å¼ã‚’使用ã—ã¾ã™ã€‚ Float32Array ã§ä»®æ•°ã«ï¼ˆ52 ビットã®ä»£ã‚りã«ï¼‰23 ãƒ“ãƒƒãƒˆã€æŒ‡æ•°ã«ï¼ˆ11 ビットã®ä»£ã‚りã«ï¼‰ 8 ビットを使用ã—ã¾ã™ã€‚Float16Array ã§ä»®æ•°ã« 10 ãƒ“ãƒƒãƒˆã€æŒ‡æ•°ã« 5 ビットを使用ã—ã¾ã™ã€‚仕様ã§ã¯ã€ã™ã¹ã¦ã® NaN 値ãŒåŒã˜ãƒ“ットエンコーダ方å¼ã‚’使用ã™ã‚‹ã“ã¨ãŒè¦æ±‚ã•れã¦ã„ã¾ã™ãŒã€æ­£ç¢ºãªãƒ“ットパターンã¯å®Ÿè£…ã«ä¾å­˜ã™ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
  • Uint8ClampedArray ã¯ç‰¹æ®Šãªã‚±ãƒ¼ã‚¹ã§ã™ã€‚ã“れ㯠Uint8Array ã¨åŒã˜ã‚ˆã†ã«ãƒã‚¤ãƒŠãƒªãƒ¼ã§æ ¼ç´ã•れã¾ã™ãŒã€ç¯„å›²å¤–ã®æ•°å€¤ã‚’æ ¼ç´ã—ãŸå ´åˆã€æœ€ä¸Šä½ãƒ“ットを切りæ¨ã¦ã‚‹ã®ã§ã¯ãªãã€æ•°å­¦çš„ãªå€¤ã§ 0 ã‹ã‚‰ 255 ã®ç¯„å›²ã«æ•°å€¤ã‚’丸ã‚ã¾ã™ã€‚

Int8Arrayã€Uint8Arrayã€Uint8ClampedArray を除ãã™ã¹ã¦ã®åž‹ä»˜ãé…列ã¯ã€å„è¦ç´ ã‚’複数ã®ãƒã‚¤ãƒˆã‚’使用ã—ã¦æ ¼ç´ã—ã¾ã™ã€‚ã“れらã®ãƒã‚¤ãƒˆã¯ã€æœ€ä¸Šä½ã‹ã‚‰æœ€ä¸‹ä½ï¼ˆãƒ“ッグエンディアン)ã€ã¾ãŸã¯æœ€ä¸‹ä½ã‹ã‚‰æœ€ä¸Šä½ï¼ˆãƒªãƒˆãƒ«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ï¼‰ã®é †ã«ä¸¦ã¹ã‚‰ã‚Œã¾ã™ã€‚詳ã—ã„説明ã¯ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã‚’å‚ç…§ã—ã¦ãã ã•ã„。型付ãé…列ã¯å¸¸ã«ãƒ—ラットフォームãƒã‚¤ãƒ†ã‚£ãƒ–ã®ãƒã‚¤ãƒˆé †ã‚’使用ã—ã¾ã™ã€‚ãƒãƒƒãƒ•ァーã‹ã‚‰èª­ã¿æ›¸ãã™ã‚‹éš›ã«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã‚’指定ã—ãŸã„å ´åˆã¯ã€ä»£ã‚り㫠DataView を使用ã—ã¦ãã ã•ã„。

ã“れらã®åž‹ä»˜ãé…åˆ—ã«æ›¸ã込む場åˆã€è¡¨ç¾å¯èƒ½ãªç¯„囲外ã®å€¤ã¯æ­£è¦åŒ–ã•れã¾ã™ã€‚

  • ã™ã¹ã¦ã®æ•´æ•°é…列(Uint8ClampedArrayを除ã)ã¯å›ºå®šå¹…ã®æ•°å€¤å¤‰æ›ã‚’使用ã—ã¾ã™ã€‚
  • Uint8ClampedArray ã¯ã€æœ€åˆã«æ•°å€¤ã‚’ 0 ã‹ã‚‰ 255 ã®ç¯„囲ã«åŽã‚ã¾ã™ï¼ˆ255 より大ãã„値㯠255 ã«ãªã‚Šã€0 よりå°ã•ã„値㯠0 ã«ãªã‚Šã¾ã™ï¼‰ã€‚ãã—ã¦ã€ï¼ˆåˆ‡ã‚Šæ¨ã¦ã‚‹ã®ã§ã¯ãªãï¼‰æœ€ã‚‚è¿‘ã„æ•´æ•°ã«ä¸¸ã‚ã¾ã™ã€‚ã¤ã¾ã‚Šã€ 2 ã¤ã®æ•´æ•°ã®ã¡ã‚‡ã†ã©ä¸­é–“ã«ã‚ã‚‹å ´åˆã¯ã€æœ€ã‚‚è¿‘ã„å¶æ•°ã®æ•´æ•°ã«ä¸¸ã‚ã¾ã™ã€‚例ãˆã°ã€0.5 㯠0ã€1.5 㯠2ã€2.5 㯠2 ã¨ãªã‚Šã¾ã™ã€‚
  • Float16Array ãŠã‚ˆã³ Float32Array ã§ã¯ "round to even" を行ã„〠64 ãƒ“ãƒƒãƒˆæµ®å‹•å°æ•°ç‚¹æ•°ã‚’ 32 ビットãŠã‚ˆã³ 16 ビットã«å¤‰æ›ã—ã¾ã™ã€‚ã“れ㯠Math.fround() ãŠã‚ˆã³ Math.f16round() ã§æŒ‡å®šã•れãŸã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¨åŒã˜ã§ã™ã€‚

サイズ変更å¯èƒ½ãªãƒãƒƒãƒ•ァー表示時ã®å‹•作ã«ã¤ã„ã¦

サイズ変更å¯èƒ½ãªãƒãƒƒãƒ•ァーã®ãƒ“ューã¨ã—㦠TypedArray を作æˆã—ãŸå ´åˆã€TypedArray ãŒé•·ã•を追跡ã™ã‚‹ã‚ˆã†æ§‹ç¯‰ã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ã«ã‚ˆã‚Šã€åŸºç›¤ã®ãƒãƒƒãƒ•ァーをサイズ変更ã—ãŸéš›ã« TypedArray ã®ã‚µã‚¤ã‚ºã«æ§˜ã€…ãªå½±éŸ¿ã‚’与ãˆã¾ã™ã€‚

3ã¤ç›®ã®å¼•数を除外ã—ãŸã‚Šã€undefined を渡ã—ãŸã‚Šã—ã¦ã€å›ºæœ‰ã®ã‚µã‚¤ã‚ºã‚’æŒãŸãªã„型付ãé…列を作æˆã—ãŸå ´åˆã€åž‹ä»˜ãé…列㯠長ã•追跡 ã¨ãªã‚Šã€å¾Œè€…ã®ã‚µã‚¤ã‚ºãŒå¤‰æ›´ã•れるã¨ã€åŸºç›¤ã¨ãªã‚‹ buffer ã«åˆã‚ã›ã¦è‡ªå‹•çš„ã«ã‚µã‚¤ã‚ºå¤‰æ›´ã•れã¾ã™ã€‚

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2

buffer.resize(12);

console.log(float32.byteLength); // 12
console.log(float32.length); // 3

型付ãé…列を 3 ã¤ç›®ã® length 引数ã§å…·ä½“çš„ãªã‚µã‚¤ã‚ºã‚’指定ã—ã¦ä½œæˆã—ãŸå ´åˆã€å¾Œè€…ãŒå¤§ãããªã£ã¦ã‚‚ buffer ã‚’æ ¼ç´ã™ã‚‹ãŸã‚ã«ã‚µã‚¤ã‚ºã‚’変更ã™ã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0ï¼ˆåˆæœŸå€¤ï¼‰

buffer.resize(12);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0ï¼ˆåˆæœŸå€¤ï¼‰

buffer ãŒç¸®å°ã•れるã¨ãã€è¦‹ã¦ã„る型付ãé…列ãŒå¢ƒç•Œã‚’è¶Šãˆã‚‹ã“ã¨ãŒã‚りã€ãã®å ´åˆã€åž‹ä»˜ãé…列ã®ç›£è¦–サイズ㯠0 ã«æ¸›å°‘ã—ã¾ã™ã€‚ã“れã¯ã€é•·ã•追跡を行ã‚ãªã„型付ãé…列ã®é•·ã•ãŒå¤‰åŒ–ã™ã‚‹å”¯ä¸€ã®ã‚±ãƒ¼ã‚¹ã§ã™ã€‚

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);

buffer.resize(7);

console.log(float32.byteLength); // 0
console.log(float32.length); // 0
console.log(float32[0]); // undefined

ãã®å¾Œã€ buffer ã‚’å†ã³å¤§ããã—ã¦åž‹ä»˜ãé…åˆ—ã‚’å…ƒã«æˆ»ã›ã°ã€åž‹ä»˜ãé…列ã®ã‚µã‚¤ã‚ºã¯å…ƒã®å€¤ã«æˆ»ã‚Šã¾ã™ã€‚

js
buffer.resize(8);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0 - back in bounds again!

é•·ã•追跡型ã®åž‹ä»˜ãé…列ã§ã‚‚ã€ãƒãƒƒãƒ•ァー㌠byteOffset ã‚’è¶…ãˆã¦ç¸®å°ã•れãŸå ´åˆã€åŒã˜ã“ã¨ãŒèµ·ã“り得る.

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 4);
// float32 ã¯é•·ã•を追跡ã—ã¾ã™ãŒã€4 ãƒã‚¤ãƒˆç›®ã‹ã‚‰ãƒãƒƒãƒ•ァー末尾ã¾ã§ã—ã‹
// æ‹¡å¼µã—ãªã„ã®ã§ã€ãƒãƒƒãƒ•ァー㌠4 ãƒã‚¤ãƒˆã‚ˆã‚ŠçŸ­ããªã‚‹ã‚ˆã†ã«ãƒªã‚µã‚¤ã‚ºã•れる
// ã¨ã€é…列ã®åž‹ãŒç¯„囲外ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
buffer.resize(3);
console.log(float32.byteLength); // 0

コンストラクター

ã“ã®ã‚ªãƒ–ジェクトã¯ç›´æŽ¥ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–ã§ãã¾ã›ã‚“。new ã§æ§‹ç¯‰ã—よã†ã¨ã™ã‚‹ã¨ TypeError ãŒç™ºç”Ÿã—ã¾ã™ã€‚

js
new (Object.getPrototypeOf(Int8Array))();
// TypeError: Abstract class TypedArray not directly constructable

ãã®ä»£ã‚りã€Int8Array ã‚„ BigInt64Array ã®ã‚ˆã†ãªç‰¹å®šã®ç¨®é¡žã®åž‹ä»˜ãé…列ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã—ã¦ãã ã•ã„。ã“れらã®ã‚ªãƒ–ジェクトã¯ã€ã™ã¹ã¦ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã«å…±é€šã®æ§‹æ–‡ã‚’æŒã£ã¦ã„ã¾ã™ã€‚

js
new TypedArray()
new TypedArray(length)
new TypedArray(typedArray)
new TypedArray(object)

new TypedArray(buffer)
new TypedArray(buffer, byteOffset)
new TypedArray(buffer, byteOffset, length)

ã“ã“ã§ TypedArray ã¯ç‰¹å®šã®åž‹ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã®ã†ã¡ã®ä¸€ã¤ã‚’表ã—ã¾ã™ã€‚

メモ: ã™ã¹ã¦ã® TypedArray サブクラスã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã¯ new を使ã£ã¦ã®ã¿æ§‹ç¯‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚new ãªã—ã§å‘¼ã³å‡ºãã†ã¨ã™ã‚‹ã¨ TypeError ãŒç™ºç”Ÿã—ã¾ã™ã€‚

引数

typedArray

TypedArray ã®ã‚µãƒ–クラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’指定ã—ã¦å‘¼ã³å‡ºã•れるã¨ã€typedArray ãŒæ–°ã—ã„型付ãé…列ã«ã‚³ãƒ”ーã•れã¾ã™ã€‚長整数以外㮠TypedArray コンストラクターã§ã¯ã€typedArray 引数ã«ã¯é•·æ•´æ•°ä»¥å¤–ã®åž‹ä»˜ãé…列ã®ã†ã¡ã®ã„ãšã‚Œã‹ï¼ˆInt32Array ãªã©ï¼‰ã‚’指定ã—ã¾ã™ã€‚åŒæ§˜ã«ã€é•·æ•´æ•°ã® TypedArray コンストラクター(BigInt64Array ã¾ãŸã¯ BigUint64Array)ã§ã¯ã€typedArray 引数ã«ã¯é•·æ•´æ•°åž‹ã®ã„ãšã‚Œã‹ã—ã‹æŒ‡å®šã§ãã¾ã›ã‚“。typedArray ã®å„値ã¯ã€æ–°ã—ã„é…列ã«ã‚³ãƒ”ーã•れるå‰ã«ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã®å¯¾å¿œã™ã‚‹åž‹ã«å¤‰æ›ã•れる。新ã—ã„型付ãé…列ã®é•·ã•㯠typedArray ã®å¼•æ•°ã®é•·ã•ã¨åŒã˜ã«ãªã‚Šã¾ã™ã€‚

object

TypedArray インスタンスã§ãªã„オブジェクトã§å‘¼ã³å‡ºã•れãŸå ´åˆã€TypedArray.from() メソッドã¨åŒã˜æ–¹æ³•ã§ã€æ–°ã—ã„型付ãé…列を生æˆã—ã¾ã™ã€‚

length çœç•¥å¯

オブジェクト以外ã§å‘¼ã³å‡ºã•れãŸå ´åˆã€å¼•æ•°ã¯åž‹ä»˜ãé…列ã®é•·ã•を指定ã™ã‚‹æ•°å€¤ã¨ã—ã¦æ‰±ã‚れã¾ã™ã€‚内部é…列ãƒãƒƒãƒ•ァーãŒãƒ¡ãƒ¢ãƒªãƒ¼å†…ã«ä½œæˆã•れã€ã‚µã‚¤ã‚ºã¯ length ã« BYTES_PER_ELEMENT ãƒã‚¤ãƒˆã‚’ä¹—ã˜ãŸã‚‚ã®ã¨ãªã‚Šã€0 ã§æº€ãŸã•れã¾ã™ã€‚ã™ã¹ã¦ã®å¼•数を除外ã™ã‚‹ã¨ã€0 ã‚’ length ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã¨åŒã˜ã«ãªã‚Šã¾ã™ã€‚

buffer, byteOffset çœç•¥å¯, length çœç•¥å¯

ArrayBuffer ã¾ãŸã¯ SharedArrayBuffer インスタンスを指定ã—ã€ã•ら㫠byteOffset ãŠã‚ˆã³ length 引数を付ã‘ã¦å‘¼ã³å‡ºã™ã¨ã€æŒ‡å®šã—ãŸãƒãƒƒãƒ•ァーをå‚ç…§ã™ã‚‹åž‹ä»˜ãé…列ビューを新ãŸã«ä½œæˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚byteOffset (ãƒã‚¤ãƒˆå˜ä½ï¼‰ã¨ length (è¦ç´ æ•°ã§ã€ãれãžã‚ŒãŒ BYTES_PER_ELEMENT ãƒã‚¤ãƒˆã‚’å ã‚ã¾ã™ï¼‰ã®å¼•æ•°ã¯ã€åž‹ä»˜ãé…列ビューãŒå‚ç…§ã™ã‚‹ãƒ¡ãƒ¢ãƒªãƒ¼ç¯„囲を指定ã—ã¾ã™ã€‚両方ã¨ã‚‚çœç•¥ã—ãŸå ´åˆã€buffer ã®å…¨ä½“ãŒå‚ç…§ã•れã¾ã™ã€‚length ã®ã¿ãŒçœç•¥ã•れãŸå ´åˆã€buffer ã® byteOffset 以é™ã®éƒ¨åˆ†ãŒè¡¨ç¤ºã•れã¾ã™ã€‚length ãŒçœç•¥ã•れãŸå ´åˆã€åž‹ä»˜ãé…列ã¯é•·ã•追跡ã¨ãªã‚Šã¾ã™ã€‚

例外

ã™ã¹ã¦ã® TypeArray サブクラスã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã¯ã€åŒã˜ã‚ˆã†ã«æ“作ã—ã¾ã™ã€‚ã™ã¹ã¦ã§ä»¥ä¸‹ã®ã‚ˆã†ãªä¾‹å¤–を発生ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚

TypeError

以下ã®ã„ãšã‚Œã‹ã®å ´åˆã«ç™ºç”Ÿã—ã¾ã™ã€‚

  • typedArray ãŒæ¸¡ã•れãŸãŒã€ç¾åœ¨ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã¨ã¯ç•°ãªã‚Šé•·æ•´æ•°åž‹ã®ã‚‚ã®ã§ã‚ã£ãŸå ´åˆã€ã¾ãŸã¯ãã®é€†ã€‚
  • typedArray ãŒæ¸¡ã•れãŸãŒã€ãã®ãƒãƒƒãƒ•ァーãŒåˆ†é›¢ã•れã¦ã„ãŸå ´åˆã€ã¾ãŸã¯åˆ†é›¢ã•れ㟠buffer ãŒç›´æŽ¥æ¸¡ã•れãŸå ´åˆã€‚
RangeError

以下ã®ã„ãšã‚Œã‹ã®å ´åˆã«ç™ºç”Ÿã—ã¾ã™ã€‚

  • æ–°ã—ã„型付ãé…列ã®é•·ã•ãŒé•·ã™ãŽã‚‹ã€‚
  • buffer (length 引数を指定ã—ãªã„å ´åˆï¼‰ã¾ãŸã¯ byteOffset ã®é•·ã•ãŒã€æ–°ã—ã„型付ãé…列ã®è¦ç´ ã‚µã‚¤ã‚ºã®æ•´æ•°å€ã§ãªã„。
  • byteOffset ãŒæœ‰åйãªé…列インデックス(0 ã‹ã‚‰ 253 - 1 ã®é–“ã®æ•´æ•°ï¼‰ã§ãªã„。
  • ãƒãƒƒãƒ•ァーã‹ã‚‰ãƒ“ューを作æˆã™ã‚‹å ´åˆã€å¢ƒç•ŒãŒãƒãƒƒãƒ•ァーã®å¤–å´ã«ãªã‚‹ã€‚è¨€ã„æ›ãˆã‚Œã°ã€byteOffset + length * TypedArray.BYTES_PER_ELEMENT > buffer.byteLength ã¨ãªã‚‹ã€‚

é™çš„プロパティ

ã“れらã®ãƒ—ロパティ㯠TypedArray コンストラクターオブジェクトã§å®šç¾©ã•れã¦ãŠã‚Šã€ã—ãŸãŒã£ã¦ã™ã¹ã¦ã® TypedArray サブクラスã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã§å…±æœ‰ã•れã¾ã™ã€‚

TypedArray[Symbol.species]

派生オブジェクトを作æˆã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れるコンストラクター関数ã§ã™ã€‚

ã™ã¹ã¦ã® TypedArray サブクラスã«ã¯ä»¥ä¸‹ã®é™çš„プロパティもã‚りã¾ã™ã€‚

TypedArray.BYTES_PER_ELEMENT

ã•ã¾ã–ã¾ãª TypedArray インスタンスã®è¦ç´ ã®ã‚µã‚¤ã‚ºã‚’数値ã§è¿”ã—ã¾ã™ã€‚

é™çš„メソッド

ã“れらã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ TypedArray コンストラクターオブジェクトã«å®šç¾©ã•れã¦ã„ã‚‹ãŸã‚ã€ã™ã¹ã¦ã® TypedArray ã®ã‚µãƒ–クラスã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã«å…±æœ‰ã•れã¾ã™ã€‚

TypedArray.from()

é…列風オブジェクトやå復å¯èƒ½ã‚ªãƒ–ジェクトã‹ã‚‰ã€æ–°ãŸãª TypedArray を生æˆã—ã¾ã™ã€‚Array.from() ã‚‚ã”覧ãã ã•ã„。

TypedArray.of()

引数ã«ä¸ŽãˆãŸå€¤ã‚’ã‚‚ã¨ã«ã€æ–°ãŸãª TypedArray を生æˆã—ã¾ã™ã€‚Array.of() ã‚‚ã”覧ãã ã•ã„。

インスタンスプロパティ

ã“れらã®ãƒ—ロパティ㯠TypedArray.prototype オブジェクトã§å®šç¾©ã•れã¦ãŠã‚Šã€ã™ã¹ã¦ã® TypedArray ã®ã‚µãƒ–クラスインスタンスã§å…±æœ‰ã•れã¦ã„ã¾ã™ã€‚

TypedArray.prototype.buffer

ã“ã®åž‹ä»˜ãé…列ã«ã‚ˆã£ã¦å‚ç…§ã•ã¦ã„ã‚‹ ArrayBuffer ã‚’è¿”ã—ã¾ã™ã€‚

TypedArray.prototype.byteLength

型付ãé…列ã®é•·ã•ã‚’ (ãƒã‚¤ãƒˆå˜ä½ã§) è¿”ã—ã¾ã™ã€‚

TypedArray.prototype.byteOffset

型付ãé…列㮠ArrayBuffer ã®å…ˆé ­ã‹ã‚‰ã®ã‚ªãƒ•セットを (ãƒã‚¤ãƒˆå˜ä½ã§) è¿”ã—ã¾ã™ã€‚

TypedArray.prototype.constructor

インスタンスオブジェクトを作æˆã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼é–¢æ•°ã§ã™ã€‚TypedArray.prototype.constructor ã¯éš ã•れ㟠TypedArray ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼é–¢æ•°ã§ã™ãŒã€åž‹ä»˜ãé…列ã®ã‚µãƒ–クラスã¯ãれãžã‚Œ constructor プロパティを定義ã—ã¦ã„ã¾ã™ã€‚

TypedArray.prototype.length

型付ãé…列内ã«ä¿æŒã•れãŸè¦ç´ ã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚

TypedArray.prototype[Symbol.toStringTag]

TypedArray.prototype[Symbol.toStringTag] プロパティã®åˆæœŸå€¤ã¯ã‚²ãƒƒã‚¿ãƒ¼ã§ã€åž‹ä»˜ãé…列ã®ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼åã¨åŒã˜æ–‡å­—列を返ã—ã¾ã™ã€‚ã“ã®ãƒ—ロパティ㯠this ã®å€¤ãŒåž‹ä»˜ãé…列ã®ã‚µãƒ–クラスã®ã„ãšã‚Œã§ã‚‚ãªã„å ´åˆã€ undefined ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ—ロパティ㯠Object.prototype.toString() ã§ä½¿ç”¨ã•れã¾ã™ã€‚ãŸã ã—ã€TypedArray ã¯ç‹¬è‡ªã® toString() メソッドをæŒã£ã¦ã„ã‚‹ã®ã§ã€ã“ã®ãƒ—ロパティã¯Object.prototype.toString.call()ã‚’ thisArg ã«åž‹ä»˜ãé…列を設定ã—ã¦å‘¼ã³å‡ºå·®ãªã„é™ã‚Šã€ã“ã®ãƒ—ロパティã®ä½¿ç”¨ã•れã¾ã›ã‚“。

ã™ã¹ã¦ã® TypedArray ã®ã‚µãƒ–クラスã«ã¯ã€ä»¥ä¸‹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãƒ—ロパティもã‚りã¾ã™ã€‚

TypedArray.prototype.BYTES_PER_ELEMENT

様々㪠TypedArray インスタンスã®è¦ç´ ã®å¤§ãã•を数値ã§è¿”ã—ã¾ã™ã€‚

インスタンスメソッド

ã“れらã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ TypedArray プロトタイプオブジェクトã«å®šç¾©ã•れã¦ã„ã‚‹ãŸã‚ã€ã™ã¹ã¦ã® TypedArray サブクラスインスタンスã§å…±æœ‰ã•れã¾ã™ã€‚

TypedArray.prototype.at()

整数値をå—ã‘å–りã€ãã®ä½ç½®ã«ã‚るアイテムを返ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯è² ã®æ•´æ•°ã‚’扱ã†ã“ã¨ãŒã§ãã€æœ€å¾Œã®é …ç›®ã‹ã‚‰é€†å‘ãã«æ•°ãˆã¾ã™ã€‚

TypedArray.prototype.copyWithin()

é…列内ã§ä¸€é€£ã®é…列è¦ç´ ã‚’コピーã—ã¾ã™ã€‚ Array.prototype.copyWithin() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.entries()

é…列内ã®ã™ã¹ã¦ã®ä½ç½®ã«å¯¾ã™ã‚‹ã‚­ãƒ¼ï¼å€¤ã®çµ„ã‚’å«ã‚€ã€æ–°ã—ã„é…列イテレーターを返ã—ã¾ã™ã€‚ Array.prototype.entries() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.every()

é…列内ã®è¦ç´ ã®ã†ã¡ã€æŒ‡å®šã•れãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満ãŸã•ãªã„è¦ç´ ãŒ 1 ã¤ã§ã‚‚見ã¤ã‹ã£ãŸå ´åˆã« false ã‚’è¿”ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã¯ true ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.every() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.fill()

é–‹å§‹ä½ç½®ã‹ã‚‰çµ‚了ä½ç½®ã¾ã§ã®ã™ã¹ã¦ã®è¦ç´ ã«å›ºå®šå€¤ã‚’設定ã—ã¾ã™ã€‚ Array.prototype.fill() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.filter()

与ãˆã‚‰ã‚ŒãŸãƒ•ィルタリング関数㌠true ã‚’è¿”ã™é…列ã®ã™ã¹ã¦ã®è¦ç´ ã‚’ã‚‚ã¤æ–°ã—ã„é…列を生æˆã—ã¾ã™ã€‚ Array.prototype.filter() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.find()

é…列è¦ç´ ãŒä¸Žãˆã‚‰ã‚ŒãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満足ã—ãŸã‚‰ã€é…列ã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚満足ã—ãªã‹ã£ãŸå ´åˆã€ undefined ã‚’è¿”ã—ã¾ã™ã€‚ Array.prototype.find() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.findIndex()

é…列è¦ç´ ãŒä¸Žãˆã‚‰ã‚ŒãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満足ã—ãŸã‚‰ã€é…列ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚満足ã—ãªã‹ã£ãŸå ´åˆã¯ -1 ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.findIndex() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.findLast()

指定ã•れãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満ãŸã™é…åˆ—ã®æœ€å¾Œã®è¦ç´ ã®å€¤ã‚’è¿”ã—ã€é©åˆ‡ãªè¦ç´ ãŒå¾—られãªã‹ã£ãŸå ´åˆã¯ undefined ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.findLast() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.findLastIndex()

指定ã•れãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満ãŸã™é…åˆ—ã®æœ€å¾Œã®è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’è¿”ã—ã€é©åˆ‡ãªè¦ç´ ãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã¯ -1 ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.findLastIndex() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.forEach()

é…列内ã®å„è¦ç´ ã«å¯¾ã™ã‚‹é–¢æ•°ã‚’呼ã³å‡ºã—ã¾ã™ã€‚ Array.prototype.forEach() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.includes()

型付ãé…列ã«ã‚ã‚‹è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹åˆ¤æ–­ã—ã€ãれã«å¿œã˜ã¦ true ã¾ãŸã¯ false ã‚’è¿”ã—ã¾ã™ã€‚ Array.prototype.includes() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.indexOf()

指定ã•れãŸå€¤ã«ç­‰ã—ã„é…列内ã®è¦ç´ ã®æœ€åˆã®ä½ç½®ã‚’è¿”ã—ã¾ã™ã€‚見ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã¯ -1 ã‚’è¿”ã—ã¾ã™ã€‚ Array.prototype.indexOf() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.join()

ã™ã¹ã¦ã®é…列è¦ç´ ã‚’ 1 ã¤ã®æ–‡å­—列ã«çµåˆã—ã¾ã™ã€‚ Array.prototype.join() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.keys()

é…列内ã®ãれãžã‚Œã®ä½ç½®ã«å¯¾ã™ã‚‹ã‚­ãƒ¼ã‚’å«ã‚€æ–°ã—ã„é…列イテレーターを返ã—ã¾ã™ã€‚ Array.prototype.keys() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.lastIndexOf()

指定ã•れãŸå€¤ã¨ç­‰ã—ã„é…列ã®è¦ç´ ã®æœ€å¾Œã®ä½ç½®ã‚’è¿”ã—ã¾ã™ã€‚見ã¤ã‹ã‚‰ãªã„å ´åˆã¯ -1 ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.lastIndexOf()を確ã‹ã‚ã¦ä¸‹ã•ã„。

TypedArray.prototype.map()

ã“ã®é…列ã®ã™ã¹ã¦ã®è¦ç´ ã§ä¸Žãˆã‚‰ã‚ŒãŸé–¢æ•°ã‚’呼ã³å‡ºã—ãŸçµæžœã‚’ã‚‚ã¤æ–°ã—ã„é…列を生æˆã—ã¾ã™ã€‚Array.prototype.map() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.reduce()

アキュームレーターã¨é…列ã®ãれãžã‚Œã®å€¤ï¼ˆå·¦ã‹ã‚‰å³ã¸ï¼‰ã«å¯¾ã—ã¦é–¢æ•°ã‚’é©ç”¨ã—ã€å˜ä¸€ã®å€¤ã«ã¾ã§ç¸®å°ã—ã¾ã™ã€‚ Array.prototype.reduce() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.reduceRight()

アキュームレーターã¨é…列ã®ãれãžã‚Œã®å€¤ï¼ˆå³ã‹ã‚‰å·¦ã¸ï¼‰ã«å¯¾ã—ã¦é–¢æ•°ã‚’é©ç”¨ã—ã€å˜ä¸€ã®å€¤ã«ã¾ã§ç¸®å°ã—ã¾ã™ã€‚ Array.prototype.reduce() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.reverse()

é…列è¦ç´ ã®é †ç•ªã‚’å転ã•ã›ã¾ã™ã€‚ — 最åˆã®è¦ç´ ã¯æœ€å¾Œã«ãªã‚Šã€æœ€å¾Œã®è¦ç´ ã¯æœ€åˆã«ãªã‚Šã¾ã™ã€‚ Array.prototype.reverse() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.set()

入力値を指定ã—ãŸé…列ã‹ã‚‰èª­ã¿è¾¼ã¿ã€åž‹ä»˜ãé…列内ã«è¤‡æ•°ã®å€¤ã‚’æ ¼ç´ã—ã¾ã™ã€‚

TypedArray.prototype.slice()

é…列ã®ä¸€éƒ¨ã‚’å–り出ã—ã¦æ–°ã—ã„é…列を返ã—ã¾ã™ã€‚ Array.prototype.slice() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.some()

é…åˆ—å†…ã§æŒ‡å®šã•れãŸãƒ†ã‚¹ãƒˆé–¢æ•°ã‚’満ãŸã™è¦ç´ ã‚’ 1 ã¤ã§ã‚‚見ã¤ã‘ãŸå ´åˆã€true ã‚’è¿”ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã¯ false ã‚’è¿”ã—ã¾ã™ã€‚Array.prototype.some() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.sort()

é…列ã®è¦ç´ ã‚’ソートã—ã€ãã®çµæžœã‚’è¿”ã—ã¾ã™ã€‚ Array.prototype.sort() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.subarray()

与ãˆã‚‰ã‚ŒãŸé–‹å§‹ä½ç½®ã¨çµ‚了ä½ç½®ã®è¦ç´ ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‹ã‚‰ã€æ–°ã—ã„ TypedArray ã‚’è¿”ã—ã¾ã™ã€‚

TypedArray.prototype.toLocaleString()

é…列ã¨è¦ç´ ã‚’表ã™ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã•ã‚ŒãŸæ–‡å­—列を返ã—ã¾ã™ã€‚ Array.prototype.toLocaleString() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.toReversed()

å…ƒã®é…列を変更ã›ãšã«ã€è¦ç´ ã‚’逆順ã«ä¸¦ã¹ãŸæ–°ã—ã„é…列を返ã—ã¾ã™ã€‚

TypedArray.prototype.toSorted()

å…ƒã®é…列を変更ã›ãšã«ã€è¦ç´ ã‚’昇順ã«ä¸¦ã¹ãŸæ–°ã—ã„é…列を返ã—ã¾ã™ã€‚

TypedArray.prototype.toString()

é…列ã¨è¦ç´ ã‚’è¡¨ã™æ–‡å­—列を返ã—ã¾ã™ã€‚ Array.prototype.toString() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.values()

é…列内ã®ãれãžã‚Œã®ä½ç½®ã«å¯¾ã™ã‚‹å€¤ã‚’å«ã‚€æ–°ã—ã„é…列イテレーターオブジェクトを返ã—ã¾ã™ã€‚ Array.prototype.values() ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。

TypedArray.prototype.with()

指定ã•れãŸä½ç½®ã®è¦ç´ ã‚’指定ã•れãŸå€¤ã§ç½®ãæ›ãˆãŸæ–°ã—ã„é…列をã€å…ƒã®é…列ã«å¤‰æ›´ã‚’加ãˆã‚‹ã“ã¨ãªãè¿”ã—ã¾ã™ã€‚

TypedArray.prototype[Symbol.iterator]()

é…列内ã§ãれãžã‚Œã®ä½ç½®ã«å¯¾ã™ã‚‹å€¤ã‚’å«ã‚€æ–°ã—ã„é…列イテレーターオブジェクトを返ã—ã¾ã™ã€‚

例

プロパティã¸ã®ã‚¢ã‚¯ã‚»ã‚¹

é…列内ã®è¦ç´ ã¯ã€æ¨™æº–ã®é…åˆ—ã®æ·»å­—æ§‹æ–‡ (ã™ãªã‚ã¡ã€ã‹ãŽæ‹¬å¼§ã‚’使用ã™ã‚‹è¡¨è¨˜) を使用ã—ã¦å‚ç…§ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã—ã‹ã—ã€åž‹ä»˜ãé…列ã§ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä»˜ãプロパティã§å–å¾—ã¾ãŸã¯è¨­å®šã™ã‚‹ã¨ãã¯ã€ç¯„囲外ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã‚‚プロパティã®ãƒ—ロトタイプãƒã‚§ãƒ¼ãƒ³ã‚’探索ã—ã¾ã›ã‚“。インデックス付ãプロパティ㯠ArrayBuffer を調ã¹ã‚‹ã®ã§ã‚りã€ã‚ªãƒ–ジェクトã®ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã¯æŽ¢ç´¢ã—ã¾ã›ã‚“。他ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆåŒæ§˜ã«ã€åå‰ä»˜ãプロパティã¯ä½¿ç”¨ã§ãã¾ã™ã€‚

js
// 標準的ãªé…列構文を使用ã—ã¦è¨­å®šãŠã‚ˆã³å–å¾—
const int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42

// プロトタイプã§ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä»˜ãé…列を使用ã—ã¦ã‚‚探索ã—ãªã„ (Fx 25)
Int8Array.prototype[20] = "foo";
new Int8Array(32)[20]; // 0
// even when out of bound
Int8Array.prototype[20] = "foo";
new Int8Array(8)[20]; // undefined
// or with negative integers
Int8Array.prototype[-1] = "foo";
new Int8Array(8)[-1]; // undefined

// åå‰ä»˜ãプロパティも利用ã§ãã‚‹ (Fx 30)
Int8Array.prototype.foo = "bar";
new Int8Array(32).foo; // "bar"

å‡çµã§ããªã„

空ã§ãªã„ TypedArray ã¯å‡çµã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ãã®åŸºç›¤ã§ã‚ã‚‹ ArrayBuffer ã¯ãã®ãƒãƒƒãƒ•ァーã®åˆ¥ã® TypedArray ビューを通ã—ã¦å¤‰æ›´ã•れるå¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã§ã™ã€‚ã“れã¯ã‚ªãƒ–ジェクトãŒç´”粋ã«å‡çµã•れるã“ã¨ãŒãªã„ã“ã¨ã‚’æ„味ã—ã¦ã„ã¾ã™ã€‚

js
const i8 = Int8Array.of(1, 2, 3);
Object.freeze(i8);
// TypeError: Cannot freeze array buffer views with elements

ByteOffset ã¯æ­£è¦åŒ–ã™ã‚‹å¿…è¦ãŒã‚ã‚‹

ArrayBuffer ã«ãƒ“ューã¨ã—㦠TypedArray を構築ã—ãŸå ´åˆã€byteOffset 引数ã¯è¦ç´ ã‚µã‚¤ã‚ºã®å¢ƒç•Œã«é…ç½®ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚è¨€ã„æ›ãˆã‚Œã°ã€ã‚ªãƒ•セット㯠BYTES_PER_ELEMENT ã®å€æ•°ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。

js
const i32 = new Int32Array(new ArrayBuffer(4), 1);
// RangeError: start offset of Int32Array should be a multiple of 4
js
const i32 = new Int32Array(new ArrayBuffer(4), 0);

ByteLength ã¯æ­£è¦åŒ–ã™ã‚‹å¿…è¦ãŒã‚ã‚‹

byteOffset 引数ã¨åŒæ§˜ã«ã€TypedArray ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã«æ¸¡ã•れる ArrayBuffer ã® byteLength プロパティもã€ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼ã® BYTES_PER_ELEMENT ã®å€æ•°ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

js
const i32 = new Int32Array(new ArrayBuffer(3));
// RangeError: byte length of Int32Array should be a multiple of 4
js
const i32 = new Int32Array(new ArrayBuffer(4));

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-typedarray-objects

ブラウザーã®äº’æ›æ€§

関連情報

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy