recursal/MDN huggingface dataset:
AudioWorkletProcessor: AudioWorkletProcessor() コンストラクター
=======================================================

**`AudioWorkletProcessor()`** コンストラクターは新しい `AudioWorkletProcessor` オブジェクトを生成します。このオブジェクトは `AudioWorkletNode` で用いる音声処理の仕組みを表します。

構文
--

**メモ:** `AudioWorkletProcessor` とその派生クラスは、ユーザーのコードから直接生成することはできません。これらは対応する `AudioWorkletNode` の生成に伴って内部でのみ生成されます。


```js
new AudioWorkletProcessor(options)
```

### 引数

`options`

`AudioWorkletNode のコンストラクター` の引数 `options` に渡されたオブジェクトです。構造化複製アルゴリズムを経由して渡されます。
 以下のプロパティが利用できます。


`numberOfInputs` 省略可

`numberOfInputs` プロパティを初期化する値です。デフォルト値は 1 です。

`numberOfOutputs` 省略可

`numberOfOutputs` プロパティを初期化する値です。デフォルト値は 1 です。

`outputChannelCount` 省略可

それぞれの出力のチャンネル数を決める **配列** です。たとえば、`outputChannelCount: [n, m]` は最初の出力のチャンネル数を `n` に、2 番目の出力のチャンネル数を `m` に設定します。配列の長さは `numberOfOutputs` に一致しなければなりません。

`parameterData` 省略可

このノード (の `parameters` プロパティ) の独自の `AudioParam` オブジェクトの初期値が入ったオブジェクトです。キーを独自プロパティの名前、値を初期値とします。

`processorOptions` 省略可

用いる `AudioWorkletProcessor` の独自の初期化に用いる任意の追加データです。

なお、最初の 2 個のプロパティにはデフォルト値があるので、`AudioWorkletNode のコンストラクター` に `options` オブジェクトが渡されなかった場合でも、ノードから `AudioWorkletProcessor` のコンストラクターには `options` オブジェクトが渡され、このオブジェクトには少なくとも `numberOfInputs` と `numberOfOutputs` があります。

### 返値

新しく構築された `AudioWorkletProcessor` のインスタンスを返します。

例
-

この例では、`AudioWorkletNode constructor` に独自のオプションを渡し、その構造化複製が `AudioWorkletProcessor` のコンストラクターに渡される様子を観察します。

 まず、独自の `AudioWorkletProcessor` を定義して登録する必要があります。
 これは別のファイルで行うことに注意してください。


```js
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
  constructor(options) {
    super();
    console.log(options.numberOfInputs);
    console.log(options.processorOptions.someUsefulVariable);
  }
  process(inputs, outputs, parameters) {
    return true;
  }
}

registerProcessor("test-processor", TestProcessor);
```


次に、メインスクリプトファイルで処理器をロードし、この処理器の名前と `options` オブジェクトを渡して `AudioWorkletNode` のインスタンスを生成します。

`options` オブジェクトでは、`someUsefulVariable` キーに `Map` のインスタンスを入れた `processorOptions` を渡します。`numberOfInputs` は渡さず、デフォルト値が設定される様子を観察します。


```js
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const testNode = new AudioWorkletNode(audioContext, "test-processor", {
  processorOptions: {
    someUsefulVariable: new Map([
      [1, "one"],
      [2, "two"],
    ]),
  },
});
```


コンソールに以下のように出力されます。
```

> 1 // AudioWorkletNode options.numberOfInputs はデフォルトに設定される
> Map(2) { 1 => "one", 2 => "two" } // someUsefulVariable で設定した Map の複製
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audioworkletprocessor-audioworkletprocessor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `AudioWorkletNode` インターフェイス
CSSTransformValue()
===================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CSSTransformValue()`** コンストラクターは、個々の座標変換オブジェクトのリストを表す、新しい `CSSTransformValue` オブジェクトを作成します。

構文
--


```js
new CSSTransformValue(transforms)
```

### 引数

`transforms`

反復処理を行う `CSSTransformComponent` オブジェクトのリスト

### 返値

新しい `CSSTransformValue` です。

### 例外

`TypeError`

transforms が空の場合に発生します。

例
-

To do

仕様書
---

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-csstransformvalue |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.values()
==========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CSSTransformValue.values()`** は、 CSSTransformValue オブジェクトの各位置に対応する値を格納した新しい *配列イテレーター* オブジェクトを返します。

構文
--


```js
values()
```

### 引数

なし。

### 返値

新しい `Array` です。

例
-

To Do

仕様書
---

#### No specification found

No specification data found for `api.CSSTransformValue.values`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.length
========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`length`** は `CSSTransformValue` インターフェイスの読み取り専用プロパティで、リスト中の座標変換コンポーネントの数を返します。

値
-

リスト内の座標変換コンポーネントの数を表す整数です。

例
-

To Do

仕様書
---

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-length |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.entries()
===========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CSSTransformValue.entries()`** メソッドは、指定されたオブジェクト自身で列挙可能なプロパティ `[key, value]`のペアを `for...in` ループによって提供されるのと同じ順序の配列で返します（違いは for-in ループがプロトタイプチェーンでも同様に列挙するところです）。

構文
--


```js
entries(obj)
```

### 引数

`obj`

自身のプロパティ `[key, value]` の組を列挙して返す `CSSTransformValue` を指定します。

### 返値

指定された `CSSTransformValue` オブジェクト自身の列挙可能なプロパティ `[key, value]` のペアの配列です。

例
-

To Do

仕様書
---

#### No specification found

No specification data found for `api.CSSTransformValue.entries`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.toMatrix()
============================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`toMatrix()`** は `CSSTransformValue` インターフェイスのメソッドで、 `DOMMatrix` オブジェクトを返します。

構文
--


```js
toMatrix()
```

### 引数

なし。

### 返値

`DOMMatrix` オブジェクトです。

### 例外

`TypeError`

行列の生成に関わる長さが px と互換性のない単位である場合（例えば相対的な長さやパーセント値など）に発生します。

例
-

To Do

仕様書
---

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-tomatrix |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.keys()
========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CSSTransformValue.keys()`** メソッドは、配列の各インデックスに対応するキーを格納した新しい *配列イテレーター* オブジェクトを返します。

構文
--


```js
keys()
```

### 引数

なし。

### 返値

新しい `Array` です。

例
-

To Do

仕様書
---

#### No specification found

No specification data found for `api.CSSTransformValue.keys`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.forEach()
===========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CSSTransformValue.forEach()`** メソッドは、指定された関数を `CSSTransformValue` の各要素に対して一度だけ実行します。

構文
--


```js
// アロー関数
forEach((currentValue) => { /\* … \*/ } )
forEach((currentValue, index) => { /\* … \*/ } )
forEach((currentValue, index, array) => { /\* … \*/ } )

// コールバック関数
forEach(callbackFn)
forEach(callbackFn, thisArg)

// インラインコールバック関数
forEach(function(currentValue) { /\* … \*/ })
forEach(function(currentValue, index) { /\* … \*/ })
forEach(function(currentValue, index, array) { /\* … \*/ })
forEach(function(currentValue, index, array) { /\* … \*/ }, thisArg)
```

### 引数

`callbackFn`

各要素に対して実行する関数で、3 つの引数を取ります。

`currentValue`

現在処理中の要素の値です。

`index` 省略可

現在処理中の要素の位置です。

`array` 省略可

`forEach()` が実行されている `CSSTransformValue` です。


`thisArg` 省略可

`callback` が実行されるときに **`this`** として扱われる値（すなわち、 `Object` の参照）です。

### 返値

なし (`undefined`)。

例
-

To Do

仕様書
---

#### No specification found

No specification data found for `api.CSSTransformValue.forEach`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue.is2D
======================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`is2D`** は `CSSTransformValue` インターフェイスの読み取り専用プロパティで、この座標変換が 2D であるか 3D であるかを返します。

`CSSTransformValue` の場合、個々の関数のいずれかが `Is2D` で false を返す場合は false を返し、このプロパティは true を返します。

値
-

論理値です。true はその座標変換が 2D 変換であることを示し、 false は 3D 変換であることを示します。

例
-

To Do

仕様書
---

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-is2d |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
GamepadEvent: GamepadEvent() コンストラクター
=====================================

**`GamepadEvent()`** コンストラクターは、新しい `GamepadEvent` オブジェクトを作成します。

構文
--


```js
new GamepadEvent(type, options)
```

### 引数

`type`

 このイベントの名前の文字列です。
 大文字小文字を区別し、ブラウザーは `gamepadconnected` または `gamepaddisconnected` に設定します。


`options`

オブジェクトで、*`Event()` で定義されたプロパティに加え*、以下のプロパティを持つことができます。

`gamepad`

このイベントに関連付けられたゲームパッドを記述する `Gamepad` オブジェクトです。


### 返値

新しい `GamepadEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| Gamepad # dom-gamepadevent-constructor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
GamepadEvent: gamepad プロパティ
===========================

**`GamepadEvent.gamepad`** は **`GamepadEvent` インターフェイス**のプロパティで、`Gamepad` オブジェクトを返し、発生した `gamepadconnected` イベントと `gamepaddisconnected` イベントの関連するゲームパッドデータへのアクセスを提供します。

値
-

`Gamepad` オブジェクトです。

例
-

`gamepad` プロパティが `gamepadconnected` イベントが発生して呼び出されているところです。


```js
window.addEventListener("gamepadconnected", (e) => {
  console.log(
    "Gamepad connected at index %d: %s. %d buttons, %d axes.",
    e.gamepad.index,
    e.gamepad.id,
    e.gamepad.buttons.length,
    e.gamepad.axes.length,
  );
});
```

仕様書
---

| Specification |
| --- |
| Gamepad # dom-gamepadevent-gamepad |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

ゲームパッド API の使用
WebRTC プロトコル入門
==============

この記事では、 WebRTC API の基礎となっているプロトコルについて説明します。

ICE
---

Interactive Connectivity Establishment (ICE) は、ウェブブラウザーをピアーと接続することを可能にするフレームワークです。さまざまな理由から、ピアー A からピアー B に直接接続することはできません。ファイアウォールをバイパスする必要があるからです。ファイアウォールは直接接続を開くことを妨害したり、端末がパブリック IP アドレスを持たない多くの場合にはユニークなアドレスを与えたり、ルーターがピアーとの直接接続を許さない場合にはサーバー経由でデータをリレーしたりします。以下で説明するように、 ICE は STUN や TURN サーバーを使用してこれを解決しています。

STUN
----

Session Traversal Utilities for NAT (STUN) は、パブリックアドレスを発見し、ピアーとの直接接続を妨害するルーターの制限を特定するためのプロトコルです。

クライアントがインターネット上の STUN サーバーにリクエストを送信すると、サーバーは、クライアントのパブリックアドレスと、ルーターの NAT 内部にアクセス可能かどうかを答えます。

![An interaction between two users of a WebRTC application involving a STUN server.](/ja/docs/Web/API/WebRTC_API/Protocols/webrtc-stun.png)

NAT
---

ネットワークアドレス変換 (Network Address Translation; NAT) は、端末にパブリック IP アドレスを割り当てるために使われます。ルーターはパブリック IP アドレスを持ち、ルーターに接続されたすべての端末はプライベート IP アドレスを持ちます。リクエストが送られると、端末のプライベート IP から、特定のポートを持つルーターのパブリック IP へ変換されます。こうすることで、各端末にユニークな IP アドレスを割り当てずともインターネット上で発見することができるようになります。

ルーターによっては、ネットワーク上の端末に接続できる相手に制限をかけている場合があります。つまり、 STUN サーバーが発見できるパブリック IP アドレスを持っていたとしても、すべての相手が接続を張れるわけではないということです。このような状況では、 TURN を使う必要があります。

TURN
----

NAT を使用するルーターによっては、 'Symmetric NAT' と呼ばれる制限をかけています。その場合、ルーターは過去に接続したことのあるピアーから来る接続しか受け入れることができません。

Traversal Using Relays around NAT (TURN) は、 TURN サーバーとの接続を開き、そのサーバーを介してすべての情報を中継することで、 Symmetric NAT の制限を回避することを意図しています。 TURN サーバーとの接続を作成し、すべてのピアにサーバーにパケットを送信するように指示し、そのパケットはあなたに転送されます。これは明らかにオーバーヘッドを伴うので、他に方法がない場合にのみ使用します。

![An interaction between two users of a WebRTC application involving STUN and TURN servers.](/ja/docs/Web/API/WebRTC_API/Protocols/webrtc-turn.png)

SDP
---

Session Description Protocol (SDP) とは、解像度、フォーマット、コーデック、暗号化などのマルチメディアコンテンツを指定するための標準です。これにより、データが転送された際に双方が理解できるようになります。本来、これらはメディアコンテンツそのものではなくそのコンテンツを指定するメタデータです。

技術的には、 SDP は真のプロトコルではなく、端末間でメディアを共有する接続を記述するために使用されるデータ形式です。

SDP の文書化は、このドキュメントの範囲外です。ただし、ここで注目すべき点がいくつかあります。

### 構造

SDP は、 1 行以上の UTF-8 テキストで構成され、それぞれ 1 文字の型で始まり、等号 (`"="`) が続き、型に依存する形式で値または説明からなる構造化テキストが続きます。ある文字で始まるテキストの行は、一般に "*letter*-lines" と呼ばれています。例えば、メディアの説明を提供する行は `"m"` という型なので、それらの行は「m 行」と呼ばれます。

### 詳細情報

SDP についてより詳しく知りたい方は、以下の有用な資料をご覧ください。

* 仕様書: RFC 4566: SDP: Session Description Protocol
* IANA registry of SDP parameters
PeerJS によるインターネット接続電話の構築
========================

* 次のページ  (en-US)

WebRTC の主な課題の 1 つが、使用したり開発したりするのがかなり複雑だということです。シグナリングサービスを処理したり、正しいエンドポイントを呼び出すタイミングを把握したりすると、混乱してしまいます。しかし、良いニュースもあります。 PeerJS は WebRTC のフレームワークで、アプリケーションの機能に集中できるように、通信とシグナリングのロジックをすべて抽象化します。 PeerJS にはクライアント側のフレームワークとサーバーの 2 つの部分があります。

この一連の記事では、 PeerJS を使用して単純な電話アプリケーションを作成します。サーバーサイドフレームワークとクライアントサイドフレームワークの両方を使用しますが、ほとんどの作業はクライアントサイドのコードを扱うことになります。

### 前提条件

このチュートリアルは中級レベルです。このチュートリアルに挑戦する前に、次のものに親しんでいる必要があります。

* バニラ JavaScript
* Node
* Express
* HTML

始める前に、 node と Yarn がインストールされていることを確認してください（後の記事の説明では Yarn を想定していますが、推奨するなら npm や他のマネージャを使用するのも自由です）。

**メモ:** 手順を追うほうが学習しやすいという方には、このコードによるチュートリアルも提供していますので、代わりに使用してください。

### 目次

1. セットアップ (en-US)
2. ピアの接続 (en-US)
    1. マイクの使用権限を取得 (en-US)
    2. HTML の表示と隠蔽 (en-US)
    3. ピアコネクションの作成 (en-US)
    4. 呼び出しの作成 (en-US)
    5. 呼び出しへの応答 (en-US)
    6. 通話の終了 (en-US)
3. 配布と追加の読み物 (en-US)
* 次のページ  (en-US)
DeviceOrientationEvent: DeviceOrientationEvent() コンストラクター
=========================================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`DeviceOrientationEvent()`** コンストラクターは、新しい `DeviceOrientationEvent` オブジェクトを作成します。

構文
--


```js
new DeviceOrientationEvent(type)
new DeviceOrientationEvent(type, options)
```

### 引数

`type`

 文字列で、このイベントの名前です。
 大文字小文字の区別があり、ブラウザーは `deviceorientation` または `deviceorientationabsolute` に設定します。
 後者の場合、 `options.absolute` は常に `true` です。


`options` 省略可

オブジェクトで、 *`Event()` で定義されているプロパティに加え*、以下のプロパティを持つことができます。

`alpha` 省略可

 Z 軸における端末の動きを表す数値で、 0 ～ 360 の範囲の度数で表します。
 既定値は `null` です。


`beta` 省略可

 X 軸における端末の動きを表す数値で、 -180 ～ 180 の範囲の度数で表します。
 これは端末の前後方向の動きを表します。
 既定値は `null` です。


`gamma` 省略可

 X 軸における端末の動きを表す数値で、 -90 ～ 90 の範囲の度数で表します。
 これは端末の左右方向の動きを表します。
 既定値は `null` です。


`absolute`

 論理値で、端末yが絶対に方向データを提供しているかどうかを示します。
 既定値は `false` です。



返値
--

新しい `DeviceOrientationEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # dom-deviceorientationevent-deviceorientationevent |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DeviceOrientationEvent: alpha プロパティ
===================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`alpha`** は `DeviceOrientationEvent` インターフェイスの読み取り専用プロパティで、 Z 軸をの端末の回転を返します。つまり、端末が画面の中央を中心に何度回転したかを返します。
 詳しくは方向および動きとして示されるデータを参照してください。

値
-

数値です。

仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # ref-for-dom-deviceorientationevent-alpha③ |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DeviceOrientationEvent`
* 端末の方向の検出
* 方向および動きとして示されるデータ
* `deviceorientation` イベント
DeviceOrientationEvent: gamma プロパティ
===================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`gamma`** は `DeviceOrientationEvent` インターフェイスのプロパティで、 Y 軸における端末の回転、つまり端末が左右に傾いている度数を `-90` から `90` の範囲で返します。
 詳しくは方向および動きとして示されるデータを参照してください。

値
-

数値です。

仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # ref-for-dom-deviceorientationevent-gamma② |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DeviceOrientationEvent`
* 端末の方向の検出
* 方向および動きとして示されるデータ
* `deviceorientation` イベント
DeviceOrientationEvent: absolute プロパティ
======================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`absolute`** は `DeviceOrientationEvent` インターフェイスの読み取り専用プロパティで、端末が絶対的に（つまり、地球の座標フレームを参照して）方向データを提供しているのか、それとも端末が決定した任意のフレームを使用しているのかを示します。
 詳しくは方向および動きとして示されるデータを参照してください。

値
-

* `instanceOfDeviceOrientationEvent` の方向データが、地球の座標フレームと端末の座標フレームの差として指定された場合に `true` を返します。
* 方向データが、任意の、端末が決定した座標フレームを参照して提供されている場合は `false` を返します。
仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # ref-for-dom-deviceorientationevent-absolute |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DeviceOrientationEvent`
* 端末の方向の検出
* 方向および動きとして示されるデータ
* `deviceorientation` イベント
DeviceOrientationEvent: beta プロパティ
==================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`beta`** は `DeviceOrientationEvent` インターフェイスの読み取り専用プロパティで、 X 軸における端末の回転を返します。つまり、 -180 度から 180 度の範囲で、端末が前方または後方に傾いている度数を返します。
 詳しくは方向および動きとして示されるデータを参照してください。

値
-

数値です。

仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # ref-for-dom-deviceorientationevent-beta② |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DeviceOrientationEvent`
* 端末の方向の検出
* 方向および動きとして示されるデータ
* `deviceorientation` イベント
TextEncoderStream: writable プロパティ
=================================

**`writable`** は `TextEncoderStream` インターフェイスの読み取り専用プロパティで、`WritableStream` を返します。

値
-

`WritableStream` です。

例
-

次の例は、`WritableStream` を `TextEncoderStream` オブジェクトから返す方法を示しています。


```js
stream = new TextEncoderStream();
console.log(stream.writable); // WritableStream
```

仕様書
---

| Specification |
| --- |
| Streams Standard # dom-generictransformstream-writable |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextEncoderStream: readable プロパティ
=================================

**`readable`** は `TextEncoderStream` インターフェイスの読み取り専用プロパティで、`ReadableStream` を返します。

値
-

`ReadableStream` です。

例
-

次の例は、`ReadableStream` を `TextEncoderStream` オブジェクトから返す方法を示しています。


```js
stream = new TextEncoderStream();
console.log(stream.readable); // ReadableStream
```

仕様書
---

| Specification |
| --- |
| Streams Standard # dom-generictransformstream-readable |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextEncoderStream: TextEncoderStream() コンストラクター
===============================================

**`TextEncoderStream()`** コンストラクター、文字列のストリームを UTF-8 エンコーディングを使用してバイト列に変換するために使用する、新しい `TextEncoderStream` オブジェクトを作成します。

構文
--


```js
new TextEncoderStream()
```

### 引数

なし。

例
-

この例では、`TextEncoderStream` を作成してテキストのストリームのアップロードに使用しています。


```js
const body = textStream.pipeThrough(new TextEncoderStream());
fetch("/dest", {
  method: "POST",
  body,
  headers: { "Content-Type": "text/plain; charset=UTF-8" },
});
```

仕様書
---

| Specification |
| --- |
| Encoding Standard # ref-for-dom-textencoderstream① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextEncoderStream: encoding プロパティ
=================================

**`encoding`** は `TextEncoderStream` インターフェイスの読み取り専用プロパティで、現在の `TextEncoderStream` オブジェクトが使用するエンコーディングアルゴリズムの名前が入った文字列を返します。

値
-

`utf-8` のエンコードされたデータが入った文字列です。

例
-

以下の例は、`TextEncoderStream` オブジェクトが `encoding` を返す方法を示しています。


```js
stream = new TextEncoderStream();
console.log(stream.encoding);
```

仕様書
---

| Specification |
| --- |
| Encoding Standard # dom-textencoder-encoding |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTMLTableRowElement: rowIndex プロパティ
===================================

**`HTMLTableRowElement.rowIndex`** は読み取り専用プロパティで、表 (`<table>`) 全体に対する行の相対的な位置を表します。

`<thead>`、`<tbody>`、`<tfoot>` の各要素が HTML の中で順不同であっても、ブラウザーは表を正しい順序で描画します。従って行のカウントは `<thead>` から `<tbody>` へ、 `<tbody>` から `<tfoot>` へと進みます。

値
-

行の位置を返します。行が表に所属していない場合は `-1` です。

例
-

この例は、 JavaScript を使用して表のすべての行に行番号を振ります。

### HTML


```html
<table>
  <thead>
    <tr>
      <th>品目</th>
      <th>価格</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>バナナ</td>
      <td>$2</td>
    </tr>
    <tr>
      <td>オレンジ</td>
      <td>$8</td>
    </tr>
    <tr>
      <td>トップサーロイン</td>
      <td>$20</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td>合計</td>
      <td>$30</td>
    </tr>
  </tfoot>
</table>
```

### JavaScript


```js
let rows = document.querySelectorAll("tr");

rows.forEach((row) => {
  let z = document.createElement("td");
  z.textContent = `(#${row.rowIndex} 行目)`;
  row.appendChild(z);
});
```

### 結果

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTMLTableRowElement: insertCell() メソッド
======================================

**`HTMLTableRowElement.insertCell()`** メソッドは、新しいセル (`<td>`) を表の行 (`<tr>`) に挿入し、そのセルの参照を返します。

**メモ:** `insertCell()` はセルを直接行に挿入します。 `Document.createElement()` を使用して新しい `<td>` 要素を作成した場合のように、 `Node.appendChild()` を使用して個別にセルを追加する必要はありません。

ただし、 `insertCell()` を使用して新しい `<th>` 要素を作成することはできません。

構文
--


```js
insertCell()
insertCell(index)
```


`HTMLTableRowElement` は HTML の `<tr>` 要素への参照です。

### 引数

`index` 省略可

新しいセルの位置を指定します。 `index` が `-1` またはセル数と等しい場合、そのセルは行の最後のセルとして追加されます。 `index` が省略された場合は、既定で `-1` となります。

### 返値

`HTMLTableCellElement` で、新しいセルへの参照です。

### 例外

`IndexSizeError` `DOMException`

`index` がセル数よりも大きい場合に発生します。

例
-

この例では、 `HTMLTableElement.insertRow()` を使用して表に新しい行を追加します。

それから `insertCell(0)` を使用して、新しいセルを新しい行に追加します。（有効な HTML にするためには、 `<tr>` は 1 つ以上の `<td>` 要素を持つ必要があります。）最後に、 `Document.createTextNode()` と `Node.appendChild()` を使用していくらかのテキストを追加します。

### HTML


```html
<table id="my-table">
  <tr>
    <td>行 1</td>
  </tr>
  <tr>
    <td>行 2</td>
  </tr>
  <tr>
    <td>行 3</td>
  </tr>
</table>
```

### JavaScript


```js
function addRow(tableID) {
  // 表への参照を取得
  let tableRef = document.getElementById(tableID);

  // 表の末尾に行を追加
  let newRow = tableRef.insertRow(-1);

  // 行の 0 の位置にセルを追加
  let newCell = newRow.insertCell(0);

  // セルにテキストノードを追加
  let newText = document.createTextNode("新しい最下行");
  newCell.appendChild(newText);
}

// addRow() を表の ID で呼び出す
addRow("my-table");
```

### 結果

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-tr-insertcell-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `HTMLTableElement.insertRow()`
* セルを表す HTML 要素: `HTMLTableCellElement`
MediaStreamTrack.label
======================

**`MediaStreamTrack.label`** は読み取り専用のプロパティであり、トラックのソースを識別するためにユーザーエージェントによって割り当てられたラベルを含む文字列を返します。例えば `"internal microphone"` などです。

この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。

構文
--


```js
const label = track.label;
```

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-label |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebRTC