recursal/MDN huggingface dataset:
EventSource: open イベント
======================

`open` は `EventSource` API のイベントで、イベントソースとのコネクションが開かれたときに発生します。

このイベントはキャンセル不可で、バブリングしません。

構文
--

このイベント名を `addEventListener()` などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。


```js
addEventListener("open", (event) => {});

onopen = (event) => {};
```

イベント型
-----

一般的な `Event` です。

例
-


```js
const evtSource = new EventSource("sse.php");

// addEventListener version
evtSource.addEventListener("open", (e) => {
  console.log("The connection has been established.");
});

// onopen version
evtSource.onopen = (e) => {
  console.log("The connection has been established.");
};
```

仕様書
---

| Specification |
| --- |
| HTML Standard # event-open |
| HTML Standard # handler-eventsource-onopen |

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

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

関連情報
----

* サーバー送信イベントの使用
* `open`
* `error`
* `message`
EventSource.url
===============

**`url`** は `EventSource` インターフェイスの読み取り専用プロパティで、ソースの URL を表す文字列を返します。

値
-

ソースの URL を表す文字列です。

例
-


```js
const evtSource = new EventSource("sse.php");
console.log(evtSource.url);
```


**メモ:** 完全な例は GitHub で見られます。 PHP を用いた簡単な SSE のデモ を参照してください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-eventsource-url-dev |

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

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

関連情報
----

* `EventSource`
Cache: matchAll() メソッド
======================

**`matchAll()`** は `Cache` インターフェイスのメソッドで、`Cache` オブジェクト内の一致するすべてのレスポンスの配列に解決される `Promise` を返します。

構文
--


```js
matchAll()
matchAll(request)
matchAll(request, options)
```

### 引数

`request` 省略可

`Cache` 内でレスポンスを見つけようとしている `Request`。 これは、`Request` オブジェクトまたは URL です。この引数を省略すると、このキャッシュ内のすべてのレスポンスのコピーが取得されます。

`options` 省略可

実行する照合の特定の制御オプションを設定できるオプションオブジェクト。 使用可能なオプションは次のとおりです。

`ignoreSearch`

論理値で、照合操作で URL のクエリー文字列を無視するかどうかを指定します。 `true` に設定すると、`http://foo.com/?value=bar` の `?value=bar` 部分を、照合の実行時に無視します。 既定値は `false` です。

`ignoreMethod`

論理値で、`true` に設定すると、照合操作で `Request` の `http` メソッドを検証しないようにします（通常は、`GET` および `HEAD` のみが許可されます）。 既定値は `false` です。

`ignoreVary`

論理値で、`true` に設定すると、`VARY` ヘッダーの照合を実行しないように照合操作に指示します。 つまり、URL が一致する場合、`Response` オブジェクトに `VARY` ヘッダーがあるかどうかに関係なく一致します。 既定値は `false` です。


### 返値

`Cache` オブジェクト内のすべての一致するレスポンスの配列に解決される `Promise`。

**メモ:** `Cache.match()` は、一致するすべてのレスポンスの配列で解決するのではなく、最初に一致するレスポンスのみ（つまり、`response[0]`）で解決することを除いて、基本的に `Cache.matchAll()` と同じです。

例
-

以下の例では、 `v1` キャッシュにある、URL `/` と潜在的な引数に一致するすべてのレスポンスを受け取ります。 `{ ignoreSearch: true }` を使用することで、 `matchAll` を使用すると、 `/` だけでなく `/?value=bar` も取得することができます。

そして、一致したレスポンスの数をログ出力します。


```js
caches.open("v1").then((cache) => {
  cache.matchAll("/", { ignoreSearch: true }).then((responses) => {
    console.log(`Found ${responses.length} matching responses`);
  });
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-matchall |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: add() メソッド
=================

**`add()`** は `Cache` インターフェイスのメソッドで、URL を受け取り、リソースを取得して、指定されたキャッシュに結果のレスポンスオブジェクトを追加します。

`add()` メソッドは、機能的に次の例と同じです。


```js
fetch(url).then((response) => {
  if (!response.ok) {
    throw new TypeError("bad response status");
  }
  return cache.put(url, response);
});
```


より複雑な操作では、 `Cache.put()` を直接使用する必要があります。

**メモ:** `add()` は、前にキャッシュに保存された、リクエストに一致するキー/値の組を上書きます。

構文
--


```js
add(request)
```

### 引数

`request`

キャッシュに加えるリクエスト。 `Request` オブジェクトか URL を指定できる。

この引数は `Request()` コンストラクターの引数として使用されるので、 URL はそのコンストラクターと同じルールに従います。すなわち、URL はベース URL からの相対パスです。ベース URL は、ウィンドウコンテキストでは文書内の `baseURI`、ワーカーコンテキストでは `WorkerGlobalScope.location` が該当します。

### 返値

`undefined` で解決する `Promise` です。

### 例外

`TypeError`

URL スキームが `http` でも `https` でもない場合。

レスポンスステータスが 200 番台（つまり、成功レスポンス）ではありません。これはリクエストが成功を返さない場合や、リクエストがオリジン間の CORS ではないリクエスト (*cross-origin no-cors* request) の場合も発生します（この場合、ステータスが常に 0 と報告されます）。

例
-

このコードブロックは、`InstallEvent` が発行されるのを待ってから、アプリがインストールプロセスを処理するために、`waitUntil` を実行します。この処理は、新しいキャッシュを作成するための `CacheStorage.open` の呼び出しと、資産を追加するための `Cache.add` の使用で構成されています。


```js
this.addEventListener("install", (event) => {
  event.waitUntil(caches.open("v1").then((cache) => cache.add("/index.html")));
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-add |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: delete() メソッド
====================

**`delete()`** は `Cache` インターフェイスのメソッドで、キーがリクエストである `Cache` 項目を探し、見つかった場合はその `Cache` 項目を削除して、`true` に解決する `Promise` を返します。 `Cache` 項目が見つからない場合は、`false` に解決します。

構文
--


```js
delete(request)
delete(request, options)
```

### 引数

`request`

削除しようとしている `Request`。 これは、`Request` オブジェクトまたは URL です。

`options` 省略可

プロパティが `delete` 操作でどのように照合するかを制御するオブジェクト。 使用可能なオプションは次のとおりです。

`ignoreSearch`

論理値で、照合操作で URL のクエリー文字列を無視するかどうかを指定します。 `true` に設定すると、`http://foo.com/?value=bar` の `?value=bar` 部分を、照合の実行時に無視します。既定値は `false` です。

`ignoreMethod`

論理値で、`true` に設定すると、照合操作が `Request` の `HTTP` メソッドを検証しないようにするします（通常、`GET` および `HEAD` のみが許可されます）。既定値は `false` です。

`ignoreVary`

論理値で、`true` に設定すると、`VARY` ヘッダーを照合しないように照合操作に指示します。 つまり、URL が一致した場合は、`Response` オブジェクトに `VARY` ヘッダーがあるかどうかに関係なく一致します。既定値は `false` です。

`cacheName`

文字列で、検索対象の特定のキャッシュを表します。 このオプションは `Cache.delete()` では無視されることに注意してください。


### 返値

キャッシュ項目が削除された場合は `true`、それ以外の場合は `false` に解決する `Promise` です。

例
-


```js
caches.open("v1").then((cache) => {
  cache.delete("/images/image.png").then((response) => {
    someUIUpdateFunction();
  });
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-delete |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: put() メソッド
=================

**`put()`** は `Cache` インターフェイスのメソッドで、キーと値のペアを現在の `Cache` オブジェクトに追加することができます。

多くの場合、やりたいことは、ただ 1 つ以上のリクエストを `fetch()` して、その結果を直接キャッシュに追加するだけです。そのような場合は、`Cache.add()` や `Cache.addAll()` を使用した方がよいでしょう。 これらはこうした操作を 1 つ以上行うための一括操作関数であるためです。


```js
fetch(url).then((response) => {
  if (!response.ok) {
    throw new TypeError("Bad response status");
  }
  return cache.put(url, response);
});
```


**メモ:** `put()` は、リクエストが以前にキャッシュに保存されたものと一致すると、キーと値のペアを上書きします。

**メモ:** `Cache.add` や `Cache.addAll` は、200 台にない `Response.status` 値を持つレスポンスをキャッシュしませんが、 `Cache.put` では、リクエストとレスポンスのペアを格納できます。結果的に、`Cache.add` や `Cache.addAll` は不透明なレスポンスを格納するために使用できませんが、 `Cache.put` では可能です。

構文
--


```js
put(request, response)
```

### 引数

`request`

キャッシュに追加する `Request` オブジェクトまたは URL。

`response`

リクエストと合う `Response`。

### 返値

`undefined` で解決する `Promise` です。

### 例外

`TypeError`

URL スキームが `http` または `https` のどちらでもない場合に返されます。

例
-

この例は、MDN の simple-service-worker の例からのものです（simple-service-worker をライブで見る）。 ここでは、`FetchEvent` が発生するのを待ちます。 次のようなカスタムレスポンスを作成します。

1. `CacheStorage.match()` を使用して、リクエストの一致が `CacheStorage` にあるかどうかを確認します。 もしそうなら、それを提供します。
2. そうでない場合は、`v1` キャッシュを `open()` で開き、`Cache.put()` を使用して既定のネットワークリクエストをキャッシュに入れ、 `return response.clone()` を使用して既定のネットワークリクエストのクローンを返します。 `put()` がレスポンスの本体を消費するため、クローンが必要です。
3. これが失敗した場合（ネットワークがダウンしているなど）、代替レスポンスを返します。


```js
let response;
const cachedResponse = caches
  .match(event.request)
  .catch(() => fetch(event.request))
  .then((r) => {
    response = r;
    caches.open("v1").then((cache) => {
      cache.put(event.request, response);
    });
    return response.clone();
  })
  .catch(() => caches.match("/gallery/myLittleVader.jpg"));
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-put |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: match() メソッド
===================

**`match()`** は `Cache` インターフェイスのメソッドで、`Cache` オブジェクトで最初に一致したリクエストに関連付けられた `Response` に解決される `Promise` を返します。一致するものが見つからない場合、`Promise` は `undefined` に解決されます。

構文
--


```js
match(request)
match(request, options)
```

### 引数

`request`

`Cache` 内でレスポンスを見つけようとしている `Request`。 これは、`Request` オブジェクトまたは URL です。

`options` 省略可

`match` 操作のオプションを設定するオブジェクト。 使用可能なオプションは次のとおりです。

`ignoreSearch`

論理値で、URL のクエリー文字列を無視するかどうかを指定します。 例えば、`true` に設定すると、`http://foo.com/?value=bar` の `?value=bar` の部分は、照合の実行時に無視されます。 既定値は `false` です。

`ignoreMethod`

論理値で、`true` に設定すると、照合操作が `Request` の `http` メソッドを検証しないようにします（通常、`GET` および `HEAD` のみが許可されます）。 既定値は `false` です。

`ignoreVary`

論理値で、`true` に設定すると、`VARY` ヘッダーの照合を実行しないように照合操作に指示します。 つまり、URL が一致する場合、`Response` オブジェクトに `VARY` ヘッダーがあるかどうかに関係なく一致します。 既定値は `false` です。


### 返値

リクエストに一致した最初の `Response` に解決し、一致するものが見つからない場合は `undefined` に解決する `Promise` です。

**メモ:** `Cache.match()` は、一致するすべてのレスポンスの配列で解決するのではなく、最初に一致したレスポンスのみ（つまり、`response[0]`）で解決することを除いて、基本的に `Cache.matchAll()` と同じです。

例
-

この例は、カスタムオフラインページの例（ライブデモ）からの引用です。 リクエストが失敗した場合、キャッシュを使用して選択したデータを提供します。 `catch()` 句は、`fetch()` の呼び出しが例外をスローしたときにトリガーされます。 `catch()` 句の内部では、 `match()` を使用して正しいレスポンスを返します。

この例では、HTTP の GET メソッドで取得された HTML 文書のみがキャッシュされます。 `if ()` 条件が false の場合、このフェッチハンドラーはリクエストに介入しません。他のフェッチハンドラーが登録されている場合、それらは `event.respondWith()` を呼び出す機会を得ます。 フェッチハンドラーが `event.respondWith()` を呼び出さなかった場合、リクエストはブラウザーによって処理され、サービスワーカーが関与していないかのように処理されます。 `fetch()` が 4xx または 5xx の範囲のレスポンスコードで有効な HTTP レスポンスを返す場合、`catch()` は呼び出されません。


```js
self.addEventListener("fetch", (event) => {
  // これが HTML 文書に対する GET リクエストである場合のみ、event.respondWith() を呼び出します。
  if (
    event.request.method === "GET" &&
    event.request.headers.get("accept").includes("text/html")
  ) {
    console.log("フェッチイベントの処理: ", event.request.url);
    event.respondWith(
      fetch(event.request).catch((e) => {
        console.error("フェッチ失敗、代わりにオフラインページに戻ります。", e);
        return caches
          .open(OFFLINE\_CACHE)
          .then((cache) => cache.match(OFFLINE\_URL));
      }),
    );
  }
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-match |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: addAll() メソッド
====================

**`addAll()`** は `Cache` インターフェイスのメソッドで、URL の配列を受け取り、それらを取得して、指定されたキャッシュに結果のレスポンスオブジェクトを追加します。取得の間に作成されたリクエストオブジェクトは、格納されるレスポンス操作のキーになります。

**メモ:** `addAll()` は、リクエストと一致する、以前にキャッシュに格納されたキーと値のペアをすべて上書きしますが、結果として生じる `put()` 操作が、同じ `addAll()` メソッドによって直前にキャッシュに格納された項目を上書きしようとすると失敗します。

構文
--


```js
addAll(requests)
```

### 引数

`requests`

キャッシュに追加したいリソースのリクエストの配列です。 `Request` オブジェクトまたは URL が指定できます。

これらのリクエストは `Request()` コンストラクターの引数として使用されるので、 URL はそのコンストラクターと同じルールに従います。すなわち、URL はベース URL からの相対パスです。ベース URL は、ウィンドウコンテキストでは文書内の `baseURI`、ワーカーコンテキストでは `WorkerGlobalScope.location` が該当します。

### 返値

`undefined` で解決する `Promise` です。

### 例外

`TypeError`

URL スキームが `http` でも `https` でもない場合。

レスポンスステータスが 200 番台（つまり、成功レスポンス）ではありません。これはリクエストが成功を返さない場合や、リクエストがオリジン間の CORS ではないリクエスト (*cross-origin no-cors* request) の場合も発生します（この場合、ステータスが常に 0 と報告されます）。

例
-

このコードブロックは、`InstallEvent` が発行されるのを待ってから、アプリのインストールプロセスを処理するために、`waitUntil` を実行します。この処理は、新しいキャッシュを作成するための `CacheStorage.open` の呼び出しと、一連の資産を追加するための `addAll()` の使用で構成されています。


```js
this.addEventListener("install", (event) => {
  event.waitUntil(
    caches
      .open("v1")
      .then((cache) =>
        cache.addAll([
          "/",
          "/index.html",
          "/style.css",
          "/app.js",
          "/image-list.js",
          "/star-wars-logo.jpg",
          "/gallery/",
          "/gallery/bountyHunters.jpg",
          "/gallery/myLittleVader.jpg",
          "/gallery/snowTroopers.jpg",
        ]),
      ),
  );
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-addAll |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
Cache: keys() メソッド
==================

**`keys()`** は `Cache` インターフェイスのメソッドで、`Cache` のキーを表す `Request` の配列に解決される `Promise` を返します。

リクエストは、挿入されたのと同じ順序で返されます。

**メモ:** レスポンスに `VARY` ヘッダーが設定されている場合、URL が重複しているがヘッダーが異なるリクエストを返すことができます。

構文
--


```js
keys()
keys(request)
keys(request, options)
```

### 引数

`request` 省略可

特定のキーが必要な場合、返してほしい `Request`。 これは、`Request` オブジェクトまたは URL です。

`options` 省略可

プロパティが `keys` 操作でどのように照合するかを制御するオブジェクト。 使用可能なオプションは次のとおりです。

`ignoreSearch`

論理値で、照合操作で URL のクエリー文字列を無視するかどうかを指定します。 `true` に設定すると、`http://foo.com/?value=bar` の `?value=bar` 部分を、照合の実行時に無視します。既定値は `false` です。

`ignoreMethod`

論理値で、`true` に設定すると、照合操作が `Request` の `HTTP` メソッドを検証しないようにするします（通常、`GET` および `HEAD` のみが許可されます）。既定値は `false` です。

`ignoreVary`

論理値で、`true` に設定すると、`VARY` ヘッダーを照合しないように照合操作に指示します。 つまり、URL が一致した場合は、`Response` オブジェクトに `VARY` ヘッダーがあるかどうかに関係なく一致します。既定値は `false` です。

`cacheName`

文字列で、検索対象の特定のキャッシュを表します。 このオプションは `Cache.keys()` によって無視されることに注意してください。


### 返値

`Cache` キーの配列に解決される `Promise` です。

例
-


```js
caches.open("v1").then((cache) => {
  cache.keys().then((keys) => {
    keys.forEach((request, index, array) => {
      cache.delete(request);
    });
  });
});
```

仕様書
---

| Specification |
| --- |
| Service Workers # cache-keys |

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

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

関連情報
----

* サービスワーカーの使用
* `Cache`
* `caches`
AudioNode: context プロパティ
========================

`AudioNode` インターフェイスの読み取り専用プロパティ `context` は、関連付けられた `BaseAudioContext`、すなわちこのノードが参加している処理グラフを表すオブジェクトを返します。

値
-

この `AudioNode` の構築に用いられた `AudioContext` または `OfflineAudioContext` です。

例
-


```js
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
oscillator.connect(gainNode).connect(audioCtx.destination);

console.log(oscillator.context); // AudioContext
console.log(oscillator.context === audioCtx); // true
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-context |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: numberOfInputs プロパティ
===============================

`AudioNode` インターフェイスの `numberOfInputs` は、このノードに供給される入力の数を返します。音源ノードは `numberOfInputs` の値が 0 であるノードという定義です。

値
-

0 以上の整数です。

例
-


```js
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode).connect(audioCtx.destination);

console.log(oscillator.numberOfInputs); // 0
console.log(gainNode.numberOfInputs); // 1
console.log(audioCtx.destination.numberOfInputs); // 1
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-numberofinputs |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: channelCountMode プロパティ
=================================

`AudioNode` インターフェイスの `channelCountMode` プロパティは、ノードの入力と出力でチャンネルを対応させる方法を表す列挙値です。

値
-

以下が、列挙値 `channelCountMode` の取りうる値とその意味です。

`max`

 チャンネルの数は、全接続における最大のチャンネル数です。
 この場合、`channelCount` は無視され、アップミキシングのみが発生します。


以下の `AudioNode` の子におけるデフォルト値です: `GainNode`, `DelayNode`, `ScriptProcessorNode`, `BiquadFilterNode` (en-US), `WaveShaperNode` (en-US)

`clamped-max`

チャンネル数は、全接続における最大のチャンネル数ですが、`channelCount` の値を上限とします。

以下の `AudioNode` の子におけるデフォルト値です: `PannerNode`, `ConvolverNode`, `DynamicsCompressorNode` (en-US)

`explicit`

チャンネル数は、`channelCount` の値になります。

以下の `AudioNode` の子におけるデフォルト値です: `AudioDestinationNode`, `AnalyserNode`, `ChannelSplitterNode`, `ChannelMergerNode`


**メモ:** 仕様書の以前のバージョンでは、`ChannelSplitterNode` でのデフォルト値は `max` でした。

例
-


```js
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.channelCountMode = "explicit";
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-channelcountmode |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: numberOfOutputs プロパティ
================================

`AudioNode` インターフェイスの `numberOfOutputs` プロパティは、このノードからの出力の数を返します。出力先ノード (`AudioDestinationNode` など) では、この属性の値は 0 です。

値
-

0 以上の整数です。

例
-


```js
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode).connect(audioCtx.destination);

console.log(oscillator.numberOfOutputs); // 1
console.log(gainNode.numberOfOutputs); // 1
console.log(audioCtx.destination.numberOfOutputs); // 0
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-numberofoutputs |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: disconnect() メソッド
============================

`AudioNode` インターフェイスの **`disconnect()`** メソッドは、このメソッドが呼ばれたノードから 1 個または複数のノードを切断します。

構文
--


```js
disconnect()
```

### 引数

`disconnect()` メソッドには、切断するノードを決めるための引数の異なる組み合わせを受け付けるいくつかのバージョンがあります。引数が渡されない場合は、すべての出力の接続が切断されます。

`destination` 省略可

切断する 1 個または複数のノードを表す `AudioNode` または `AudioParam` です。値が `AudioNode` の場合は、切断する対象の 1 個のノードを表し、他の任意の引数 (`output` および `input`) によって切断する入力や出力を絞り込むことができます。値が `AudioParam` の場合は、この `AudioParam` への接続が終了し、変更が反映されるとこのパラメーターの計算におけるこのノードの担当部分は 0 になります。

`output` 省略可

この `AudioNode` のどの出力を切断するかを表すインデックスです。インデックス番号は出力のチャンネル数に基づいて決められます。(オーディオチャンネルを参照してください)

`input` 省略可

指定の出力先 `AudioNode` へのどの入力を切断するかを表すインデックスです。インデックス番号は入力のチャンネル数に基づいて決められます。(オーディオチャンネルを参照してください)

### 返値

なし (`undefined`)

### 例外

`IndexSizeError` `DOMException`

`input` または `output` として指定された値が無効な (存在しないノードを指しているか、許される範囲の外である) とき投げられます。

`InvalidAccessError` `DOMException`

`disconnect()` が呼ばれたノードが指定された `destination` ノードに接続されていないとき投げられます。

例
-


```js
const AudioContext = window.AudioContext || window.webkitAudioContext;

const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

gainNode.disconnect();
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-disconnect |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: channelInterpretation プロパティ
======================================

`AudioNode` インターフェイスの **`channelInterpretation`** プロパティは、入力と出力の数が違う場合に入力のチャンネルを出力のチャンネルに対応付ける方法を表す列挙値です。たとえば、これによりモノラルの入力をステレオや 5.1 チャンネルの出力にアップミキシングする方法や、クアッドチャンネルの入力をステレオやモノラルの出力にダウンミキシングする方法が決まります。

このプロパティには、`speakers` と `discrete` の 2 個の選択肢があります。これらの説明は、Basic concepts behind Web Audio API > アップミキシングとダウンミキシングにあります。

値
-

値の説明は、Basic concepts behind Web Audio API > アップミキシングとダウンミキシングにあります。

簡単にいうと:

`speakers`

一般的なスピーカーの入力と出力の設計の組み合わせ (モノラル、ステレオ、クアッド、5.1) 用の「通常の」対応付けを使用します。たとえば、この設定では、モノラルの入力はステレオの出力の両方のチャンネルに出力されます。

`discrete`

入力のチャンネルは順に出力のチャンネルに対応付けられます。出力より入力が多い場合は、余った入力は捨てられます。入力の方が少ない場合は、余った出力は無音になります。

例
-


```js
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.channelInterpretation = "discrete";
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-channelinterpretation |

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

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

関連情報
----

* Web Audio API の使用
AudioNode: channelCount プロパティ
=============================

`AudioNode` インターフェイスの **`channelCount`** プロパティは、このノードへの入力についてアップミキシングとダウンミキシングを行う際、何個のチャンネルを用いるかを決定するとき用いる整数です。

`channelCount` の使用法と正確な定義は、`AudioNode.channelCountMode` の値によって以下のようになります。

* `channelCountMode` の値が `max` のときは、無視されます。
* `channelCountMode` の値が `clamped-max` のときは、最大値として用いられます。
* `channelCountMode` の値が `explicit` のときは、ちょうどの値として用いられます。
値
-

整数です。

例
-


```js
const audioCtx = new AudioContext();

const oscillator = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.channelCount;
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-audionode-channelcount |

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

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

関連情報
----

* Web Audio API の使用
HIDConnectionEvent()
====================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

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

**`HIDConnectionEvent()`** コンストラクターは、新しい `HIDConnectionEvent` オブジェクトを生成します。通常は、イベントは Input レポートを受信した際に生成されるため、このコンストラクターは使用されません。

構文
--


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

### 引数

`type`

 イベントの名前を表す文字列です。
 大文字と小文字は区別され、ブラウザーは `connect` または `disconnect` に設定します。


`options`

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

`device`

Input レポートを送信したデバイスを表す `HIDDevice` のインスタンスです。


### 返値

新しい `HIDConnectionEvent` オブジェクトを返します。

仕様書
---

| Specification |
| --- |
| WebHID API # dom-hidconnectionevent-constructor |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

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

`HIDConnectionEvent` インターフェイスの読み取り専用プロパティ **`device`** は、この接続イベントに関係する `HIDDevice` のインスタンスを返します。

値
-

`HIDDevice` です。

例
-

この例では、`connect` イベントと `disconnect` イベントにイベントリスナーを登録します。そして、コンソールに `HIDDevice.productName` を出力します。


```js
navigator.hid.addEventListener("connect", ({ device }) => {
  console.log(`HID が接続されました : ${device.productName}`);
});

navigator.hid.addEventListener("disconnect", ({ device }) => {
  console.log(`HID が切断されました : ${device.productName}`);
});
```

仕様書
---

| Specification |
| --- |
| WebHID API # dom-hidconnectionevent-device |

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

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

**`TextDecoder()`** コンストラクターは、引数で指定されたエンコーディング用に新しく作成された `TextDecoder` オブジェクトを返します。

構文
--


```js
new TextDecoder()
new TextDecoder(label)
new TextDecoder(label, options)
```

### 引数

`label` 省略可

 文字列で、既定値は `"utf-8"` です。
 これは何れかの有効なラベルです。


`options` 省略可

次のプロパティを持つオブジェクトです。

`fatal`

 論理値で、無効なデータをデコードした場合に `TextDecoder.decode()` メソッドが `TypeError` を発生させるかどうかを示します。
 既定値では `false` であり、これはデコードする際に不正なデータを置換文字で置き換えることを意味します。


`ignoreBOM`

 論理値で、バイトオーダーマークを無視するか否かを示します。
 既定値は `false` です。



### 例外

`RangeError`

`label` の値が未知の場合、または `'replacement'` デコードアルゴリズムにつながる値のいずれか（`"iso-2022-cn"` または `"iso-2022-cn-ext"`）になっている場合に発生します。

例
-


```js
const textDecoder1 = new TextDecoder("iso-8859-2");
const textDecoder2 = new TextDecoder();
const textDecoder3 = new TextDecoder("csiso2022kr", { fatal: true }); // TypeError 例外を発生できるようにします。
const textDecoder4 = new TextDecoder("iso-2022-cn"); // RangeError 例外が発生します。
```

仕様書
---

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

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

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

関連情報
----

* 所属先の `TextDecoder` インターフェイス。