recursal/MDN huggingface dataset:
BaseAudioContext.createBiquadFilter()
=====================================

`createBiquadFilter()` は `BaseAudioContext` インターフェイスのメソッドで、 `BiquadFilterNode` (en-US) を生成し、いくつかの異なる共通フィルター型として設定可能な 2 次フィルターを表現します。

**メモ:** `BiquadFilterNode()` (en-US) コンストラクターが `BiquadFilterNode` (en-US) を作成するのに推奨される方法です。 AudioNode の作成を参照してください。

構文
--


```js
createBiquadFilter();
```

### 引数

なし。

### 返値

`BiquadFilterNode` (en-US) です。

例
-

次の例は AudioContext で Biquad フィルターノードを作成する基本的な使い方を示しています。完全に動作する例は、 voice-change-o-matic を参照してください（ソースコードも参照してください）。


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

// このアプリで使う2つのノードを設定する
var analyser = audioCtx.createAnalyser();
var distortion = audioCtx.createWaveShaper();
var gainNode = audioCtx.createGain();
var biquadFilter = audioCtx.createBiquadFilter();
var convolver = audioCtx.createConvolver();

// ノードを接続する

source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);
analyser.connect(distortion);
distortion.connect(biquadFilter);
biquadFilter.connect(convolver);
convolver.connect(gainNode);
gainNode.connect(audioCtx.destination);

// 二次フィルターで操作する

biquadFilter.type = "lowshelf";
biquadFilter.frequency.setValueAtTime(1000, audioCtx.currentTime);
biquadFilter.gain.setValueAtTime(25, audioCtx.currentTime);
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-baseaudiocontext-createbiquadfilter |

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

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

関連情報
----

* ウェブオーディオ API の使用
BaseAudioContext.audioWorklet
=============================

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

`audioWorklet` は `BaseAudioContext` インターフェイスの読み取り専用プロパティで、 `AudioWorklet` のインスタンスを返します。これは、独自の音声処理を実装する `AudioWorkletProcessor` の派生クラスを追加するために使用します。

値
-

`AudioWorklet` のインスタンスです。

例
-

*ユーザー定義のオーディオ処理を実演する完全な例については、 `AudioWorkletNode` のページを参照してください。*

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-baseaudiocontext-audioworklet |

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

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

関連情報
----

* ウェブオーディオ API の使用
* `AudioWorkletNode`
BaseAudioContext.currentTime
============================

`currentTime` は `BaseAudioContext` インターフェイスの読み取り専用プロパティで、再生、タイムラインの可視化などのスケジューリングで使用できる単純増加するハードウェア時間の秒数を倍精度浮動小数点型で返します。 0 から始まります。

値
-

浮動小数点数です。

例
-


```js
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
// 古い webkit/blink ブラウザーでは接頭辞が必要です

...

console.log(audioCtx.currentTime);
```

時刻の精度の縮小
--------

 タイミング攻撃やフィンガープリントに対する保護を提供するために、ブラウザーの設定によっては `audioCtx.currentTime` の値が丸められることがあります。
 Firefox では、環境設定の `privacy.reduceTimerPrecision` が既定で有効になっており、 Firefox 59 では 20us、60 では 2ms になっています。


```js
// reduced time precision (2ms) in Firefox 60
audioCtx.currentTime;
// 23.404
// 24.192
// 25.514
// ...

// reduced time precision with `privacy.resistFingerprinting` enabled
audioCtx.currentTime;
// 49.8
// 50.6
// 51.7
// ...
```


Firefox では、 `privacy.resistFingerprinting` を有効にすると、精度は 100ms または `privacy.resistFingerprinting.reduceTimerPrecision.microseconds` の値のどちらか大きいほうになります。

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-baseaudiocontext-currenttime |

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

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

関連情報
----

* ウェブオーディオ API の使用
FederatedCredential: FederatedCredential() コンストラクター
===================================================

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

**`FederatedCredential()`** コンストラクターは、新しい `FederatedCredential` オブジェクトを作成します。対応しているブラウザーでは、このクラスのインスタンスにグローバル `fetch()` の `init` オブジェクトから受け取った `credential` を渡すことができます。

構文
--


```js
new FederatedCredential(init)
```

### 引数

`init`

オプションは次の通りです。

`provider`

文字列で、資格情報プロバイダーを識別します。


仕様書
---

| Specification |
| --- |
| Credential Management Level 1 # dom-federatedcredential-federatedcredential |

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

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

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

**`provider`** は `FederatedCredential` インターフェイスのプロパティで、資格情報の連合アイデンティティプロバイダーの入った文字列を返します。

値
-

資格情報の連合アイデンティティプロバイダーの入った文字列です。

例
-


```js
// TBD
```

仕様書
---

| Specification |
| --- |
| Credential Management Level 1 # dom-federatedcredential-provider |

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

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

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

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

**`protocol`** は `FederatedCredential` インターフェイスのプロパティで、資格情報の連合アイデンティティプロトコルが入った読み取り専用の文字列を返します。このプロパティが `null` の場合、プロトコルは `FederatedCredential.provider` プロパティから推測される可能性があります。

### 値

資格情報の連合アイデンティティプロトコル（例えば `openidconnect`）が入った文字列です。

例
-


```js
// TBD
```

仕様書
---

| Specification |
| --- |
| Credential Management Level 1 # dom-federatedcredential-protocol |

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

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

**注:** この機能は Web Worker 内で利用可能です

**`name`** は `PerformanceEntry` インターフェイスの読み取り専用プロパティで、パフォーマンス項目の名前を表す文字列です。これは識別子の役割を果たしますが、一意である必要はありません。値はサブクラスに依存します。

値
-

文字列です。以下の表に示すように、値は下記の表にある通り、 `PerformanceEntry` オブジェクトのサブクラスによって異なります。

| サブクラス | 値 |
| --- | --- |
| `LargestContentfulPaint` (en-US) | 常に空文字列を返します。 |
| `LayoutShift` (en-US) | 常に `"layout-shift"` を返します。 |
| `PerformanceElementTiming` | 次の文字列のいずれかです。
 * `"image-paint"`
* `"text-paint"`
 |
| `PerformanceEventTiming` (en-US) | 関連するイベントの型です。 |
| `PerformanceLongTaskTiming` | 次の文字列のいずれかです。
 * `"cross-origin-ancestor"`
* `"cross-origin-descendant"`
* `"cross-origin-unreachable"`
* `"multiple-contexts"`
* `"same-origin-ancestor"`
* `"same-origin-descendant"`
* `"same-origin"`
* `"self"`
* `"unknown"`
 |
| `PerformanceMark` | `performance.mark()` を呼び出したことでマークが作成されたときに使用された名前です。 |
| `PerformanceMeasure` | `performance.measure()` を呼び出してたことで指標が作成されたときに使用された名前です。 |
| `PerformanceNavigationTiming` | リクエストされたリソースの解決された URL です。リクエストがリダイレクトされてもこの値は変わりません。 |
| `PerformancePaintTiming` | 次の文字列のいずれかです。
 * `"first-paint"`
* `"first-contentful-paint"`
 |
| `PerformanceResourceTiming` | リクエストされたリソースの解決された URL です。リクエストがリダイレクトされてもこの値は変わりません。 |
| `TaskAttributionTiming` | 常に `"unknown"` を返します。 |
| `VisibilityStateEntry` (en-US) | 次の文字列のいずれかです。
 * `"visible"`
* `"hidden"`
 |

例
-

### パフォーマンス項目を名前で絞り込み

`PerformanceEntry` が `PerformanceResourceTiming` オブジェクトである場合、`name` プロパティはリクエストされたリソースの解決した URL を参照します。
 この例では、`name` プロパティは固有のリソース、例えばすべての SVG 画像をフィルタリングするのに有益です。


```js
// SVG リソースの処理時間をログ出力
performance.getEntriesByType("resource").forEach((entry) => {
  if (entry.name.endsWith(".svg")) {
    console.log(`${entry.name}'s duration: ${entry.duration}`);
  }
});
```

### パフォーマンス項目を名前で取得

`Performance` と `PerformanceObserver` はどちらもパフォーマンス項目を直接名前で取得するメソッドを提供しています。代わりに `Performance.getEntriesByName()` または `PerformanceObserverEntryList.getEntriesByName()` (en-US) を使用することができます。


```js
// この時点での "debug-marks" という名前のマークをすべてログ出力
const debugMarks = performance.getEntriesByName("debug-mark", "mark");
debugMarks.forEach((entry) => {
  console.log(`${entry.name}'s startTime: ${entry.startTime}`);
});

// PerformanceObserver 版
// "debug-marks" という名前のマークが発生したらすべてログ出力
function perfObserver(list, observer) {
  list.getEntriesByName("debug-mark", "mark").forEach((entry) => {
    console.log(`${entry.name}'s startTime: ${entry.startTime}`);
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });
```

仕様書
---

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-name |

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

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

関連情報
----

* `Performance.getEntriesByName()`
* `PerformanceObserverEntryList.getEntriesByName()` (en-US)
PerformanceEntry: duration プロパティ
================================

**`duration`** プロパティは、パフォーマンス項目の時間であるタイムスタンプを返します。このプロパティの意味は、この項目の `entryType` の値によって異なります。

値
-

`DOMHighResTimeStamp` で、パフォーマンス項目の継続時間を表します。具体的なパフォーマンス指標に長さの概念が適用されない場合は、`0` の時間を返します。

このプロパティの意味は、このパフォーマンス項目の `entryType` の値によって異なります。

`event`

イベントの `startTime` から次のレンダリングペイントまでの時間です（8 ミリ秒単位に丸めた値）。

`first-input`

最初の入力イベントの `startTime` から次のレンダリングペイントまでの時間です（8 ミリ秒単位に丸めた値）。

`longtask`

タスクの開始から終わりまでの経過時間です（1 ミリ秒単位）。

`measure`

測定の時間です。

`navigation`

この項目の `loadEventEnd` プロパティと `startTime` プロパティの差です。

`resource`

この項目の `responseEnd` 値からこの項目の `startTime` 値を引いたものです。

以下の種類の項目では `duration` は適用されず、この場合の値は常に `0` になります。

* `element`
* `largest-contentful-paint`
* `layout-shift`
* `mark`
* `paint`
* `taskattribution`
* `visibility-state`
例
-

### duration プロパティの使用

次の例では、`duration` が `0` より大きいパフォーマンス項目をすべてログ出力します。


```js
function perfObserver(list, observer) {
  list.getEntries().forEach((entry) => {
    if (entry.duration > 0) {
      console.log(`${entry.name}'s duration: ${entry.duration}`);
    }
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark", "resource"] });
```

仕様書
---

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-duration |

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

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

**`startTime`** プロパティは読み取り専用で、パフォーマンス項目のうち最初に記録された タイムスタンプを返します。このプロパティの意味は、この項目の `entryType` の値によって異なります。

値
-

この`パフォーマンス項目`が作成されたときの最初のタイムスタンプを表す `DOMHighResTimeStamp` です。

このプロパティの意味は、この項目の `entryType` の値によって異なります。

`element`

この項目の `renderTime` の値が `0` でない場合はその値、そうでない場合はこの項目の `loadTime` の値。

`event`

イベントが作成された時刻、すなわちそのイベントの `timeStamp` プロパティです。

`first-input`

最初の入力イベントが作成された時刻、すなわちそのイベtのの `timeStamp` プロパティです。

`largest-contentful-paint`

この項目の `renderTime` (en-US) の値が `0` でない場合はその値、そうでない場合はこの項目の `loadTime` (en-US) の値。

`layout-shift`

レイアウトシフトが始まった時刻。

`longtask`

タスクが始まった時刻。

`mark`

`performance.mark()` の呼び出しによってマークが作成された時刻。

`measure`

`performance.measure()` の呼び出しによって指標が作成された時刻。

`navigation`

常に `0` です。

`paint`

描画が発生した時刻。

`resource`

この項目の `fetchStart` プロパティの値。

`taskattribution`

常に `0` です。

`visibility-state`

可視状態の変更が発生した時刻。

例
-

### startTime プロパティの使用

次の例は、パフォーマンス監視中にログ出力することができる `startTime` プロパティの使用例を示しています。

メモ: `performance.mark()` メソッドでは、自分自身で `startTime` を設定することができ、 `performance.measure()` メソッドでは、測定の開始を設定することができます。


```js
performance.mark("my-mark");
performance.mark("my-other-mark", { startTime: 12.5 });

loginButton.addEventListener("click", (clickEvent) => {
  performance.measure("login-click", { start: clickEvent.timeStamp });
});

function perfObserver(list, observer) {
  list.getEntries().forEach((entry) => {
    if (entry.entryType === "mark") {
      console.log(`${entry.name}'s startTime: ${entry.startTime}`);
    }
    if (entry.entryType === "measure") {
      console.log(`${entry.name}'s duration: ${entry.duration}`);
    }
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });
```

仕様書
---

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-starttime |

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

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

**注:** この機能は Web Worker 内で利用可能です

**`entryType`** プロパティは読み取り専用で、この項目が表すパフォーマンス指標の種類を表す文字列です。

対応している `entryTypes` はすべて、静的プロパティである `PerformanceObserver.supportedEntryTypes` を使用して得ることができます。

値
-

文字列です。返値は `PerformanceEntry` オブジェクトのサブタイプに依存します。一部のサブタイプには複数の `entryType` があります。

`element`

要素の読み込み時間を報告します。

項目のインスタンスは `PerformanceElementTiming` オブジェクトです。

`event`

イベントの待ち時間を報告します。

項目のインスタンスは `PerformanceEventTiming` (en-US) オブジェクトです。

`first-input`

first input delay (en-US) (FID) を報告します。

項目のインスタンスは `PerformanceEventTiming` (en-US) オブジェクトです。

`largest-contentful-paint`

画面で起動された要素の最大の描画を報告します。

項目のインスタンスは `LargestContentfulPaint` (en-US) オブジェクトです。

`layout-shift`

ページ上の要素の動きに基づいて、ウェブページのレイアウトの安定性を報告します。

項目のインスタンスは `LayoutShift` (en-US) オブジェクトです。

`longtask`

長いタスクのインスタンスを報告します。

項目のインスタンスは `PerformanceLongTaskTiming` オブジェクトです。

`mark`

独自のパフォーマンスマーカーを報告します。

項目のインスタンスは `PerformanceMark` オブジェクトです。

`measure`

独自のパフォーマンス指標を報告します。

項目のインスタンスは `PerformanceMeasure` オブジェクトです。

`navigation`

文書のナビゲーションタイミングを報告します。

項目のインスタンスは `PerformanceNavigationTiming` オブジェクトです。

`paint`

ページ読み込み中の文書レンダリングの主要な瞬間（最初の描画、最初のコンテンツ描画）を報告します。

項目のインスタンスは `PerformancePaintTiming` オブジェクトです。

`resource`

文書内のリソースのタイミング情報を報告します。

項目のインスタンスは `PerformanceResourceTiming` オブジェクトです。

`taskattribution`

長いタスクに大きく貢献した作業タイプを報告します。

項目のインスタンスは `TaskAttributionTiming` オブジェクトです。

`visibility-state`

タブがフォアグラウンドからバックグラウンドへ、またはその逆へ変化したときなど、ページの表示状態が変化した時刻を報告します。

項目のインスタンスは `VisibilityStateEntry` (en-US) オブジェクトです。

例
-

### パフォーマンス項目を種類別に絞り込み

`entryType` プロパティは、固有のパフォーマンス項目を絞り込みする際に有益なものです。例えば、すべてのスクリプトリソースを調べたい場合、 `entryType` が `"resource"` で `initiatorType` が `"script"` であることをチェックしてください。


```js
const scriptResources = performance
  .getEntries()
  .filter(
    (entry) =>
      entry.entryType === "resource" && entry.initiatorType === "script",
  );
console.log(scriptResources);
```

### パフォーマンス項目を種類別に取得

`Performance` と `PerformanceObserver` はどちらも、パフォーマンス項目を種類別に直接取得するメソッドを提供します。代わりに `Performance.getEntriesByType()` または `PerformanceObserverEntryList.getEntriesByType()` (en-US) を使用することができます。

また、 `PerformanceObserver` で監視する場合、 `observe()` メソッドはオプションオブジェクトに `entryTypes` の配列を受け取り、そこで監視する項目の種類を決めることができます。


```js
// この時点ですべてのリソース項目をログ出力
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  console.log(`${entry.name}'s duration: ${entry.duration}`);
});

// PerformanceObserver 版
// 利用できるすべてのリソース項目をログ出力
function perfObserver(list, observer) {
  list.getEntriesByType("resource").forEach((entry) => {
    console.log(`${entry.name}'s duration: ${entry.duration}`);
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["resource", "navigation"] });
```

仕様書
---

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-entrytype |

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

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

関連情報
----

* `PerformanceObserver.supportedEntryTypes`
* `Performance.getEntriesByType()`
* `PerformanceObserverEntryList.getEntriesByType()` (en-US)
PerformanceEntry: toJSON() メソッド
===============================

**`toJSON()`** メソッドはシリアライザーで、この `PerformanceEntry` オブジェクトの JSON 表現を返します。

構文
--


```js
toJSON()
```

### 引数

なし。

### 返値

`JSON` お武衛ジェクトで、この `PerformanceEntry` オブジェクトをシリアライズしたものです。

例
-

### toJSON メソッドの使用

この例では、 `entry.toJSON()` を呼び出すとその `PerformanceMark` オブジェクトの JSON 表現を返します。


```js
performance.mark("debug-marker", {
  detail: "debugging-marker-123",
});

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(entry.toJSON());
  });
});

observer.observe({ entryTypes: ["mark"] });
```


これは JSON オブジェクトを次のように出力します。


```json
{
  "name": "debug-marker",
  "entryType": "mark",
  "startTime": 158361,
  "duration": 0
}
```


`PerformanceMark` の `detail` (en-US) プロパティが格納されていないことに注意してください。

JSON 文字列を取得するには、 `JSON.stringify(entry)` を直接使用することができます。これは `toJSON()` を自動的に呼び出します。

仕様書
---

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-tojson |

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

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

関連情報
----

* `JSON`
NDEFRecord: NDEFRecord() コンストラクター
=================================

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

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

**`NDEFRecord()`** はウェブ NFC API のコンストラクターで、新しく構築された `NDEFRecord` オブジェクトを返します。これは互換性のある NFC 機器（例えば、NDEF に対応している NFC タグ）から読み書きできるデータを表すものです。

構文
--


```js
new NDEFRecord(options)
```

### 引数

`options`

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

`data` 省略可

転送されるデータが入ります。文字列のオブジェクトまたはリテラル、`ArrayBuffer`、`TypedArray`、`DataView`、またはネストされたレコードの配列のいずれかです。

`encoding` 省略可

文字列で、このレコードのエンコーディングを指定します。

`id` 省略可

このレコードの開発者が定義した識別子です。

`lang` 省略可

RFC 5646: Tags for Identifying Languages （または BCP 47）による有効な言語タグです。

`mediaType` 省略可

有効な MIME タイプです。

`recordType`

文字列で、 `data` に格納されたデータの型を示します。以下の値の何れかである必要があります。

`"absolute-url"`

データへの絶対 URL です。

`"empty"`

空の `NDEFRecord` です。

`"mime"`

有効な MIME タイプです。

`"smart-poster"`

NDEF-SMARTPOSTER 仕様書で定義されたスマートポスターです。

`"text"`

NDEF-TEXT 仕様書で定義されたテキストです。

`"unknown"`

レコードの型が不明です。

`"URL"`

NDEF-URI 仕様書で定義された URL です。


### 返値

新しい `NDEFRecord` です。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-constructor |

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

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

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

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

**`encoding`** は `NDEFRecord` インターフェイスのプロパティで、テキストのペイロードのエンコーディングを返します。それ以外の場合は `null` です。

構文
--


```js
NDEFRecord.encoding
```

### 値

文字列で、 `"utf-8"`, `"utf-16"`, `"utf-16le"`, `"utf-16be"` のうちのいずれかです。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-encoding |

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

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

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

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

**`data`** は `NDEFRecord` インターフェイスのプロパティで、このレコードのペイロードの生のバイト列が入った `DataView` を返します。

構文
--


```js
NDEFRecord.data
```

### 値

エンコードしたこのレコードのペイロードをの入った `DataView` を返します。

例
-

次の例は `NDEFReadingEvent.message` から取得した `NDEFMessage` オブジェクト内のレコードを反復処理します。 `mediaType` に基づいてレコードを選択すると、次に `data` プロパティに格納されているものをデコードします。


```js
const ndef = new NDEFReader();
await ndef.scan();
ndef.onreading = (event) => {
  const decoder = new TextDecoder();
  for (const record of event.message.records) {
    if (record.mediaType === "application/json") {
      const json = JSON.parse(decoder.decode(record.data));
      const article = /^[aeio]/i.test(json.title) ? "an" : "a";
      console.log(`${json.name} is ${article} ${json.title}`);
    }
  }
};
```

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-data |

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

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

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

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

**`mediaType`** は `NDEFRecord` インターフェイスのプロパティで、このレコードの MIME タイプを返します。この値は `recordType` が `"mime"` と等しくない場合は `null` になります。

構文
--


```js
NDEFRecord.mediaType
```

### 値

文字列で、このレコードのペイロードの MIME タイプが入ります。

例
-

次の例は `NDEFReadingEvent.message` から取得した `NDEFMessage` オブジェクト内のレコードを反復処理します。そして、 `mediaType` プロパティを使用して、どのレコードを解釈するかを決定します。


```js
const ndef = new NDEFReader();
await ndef.scan();
ndef.onreading = (event) => {
  const decoder = new TextDecoder();
  for (const record of event.message.records) {
    if (record.mediaType === "application/json") {
      const json = JSON.parse(decoder.decode(record.data));
      const article = /^[aeio]/i.test(json.title) ? "an" : "a";
      console.log(`${json.name} is ${article} ${json.title}`);
    }
  }
};
```

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-mediatype |

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

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

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

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

**`recordType`** は `NDEFRecord` インターフェイスのプロパティで、このレコードのレコード型を返します。

構文
--


```js
NDEFRecord.recordType
```

### 値

文字列で、以下のうちのいずれかを取ります。

`"empty"`

空の NDEF レコードです。

`"text"`

テキストの NDEF レコードです。

`"url"`

URI の NDEF レコードです。

`"smart-poster"`

「スマートポスター」の NDEF レコードです。

`"absolute-url"`

絶対 URL の NDEF レコードです。

`"mime"`

MIME タイプの NDEF レコードです。

`"unknown"`

NDEF レコード型が不明です。

ローカル型名

ローカル型名を表します。他のレコードに埋め込まれた NDEF レコードを指定するのによく使われます。

外部型名

ドメイン名とカスタムタイプ名をコロン (":") で区切ったカスタム文字列です。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-recordtype |

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

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

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

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

**`toRecords()`** は `NDEFRecord` インターフェイスのメソッドで、 `NDEFRecord.data` を `NDEFRecord.recordType` に基づいた一連のレコードに変換し、その結果を返すものです。これにより、スマートポスターや外部型レコードなど、ネストしたレコードを含む可能性のあるレコード型のペイロードを解釈することができます。

構文
--


```js
toRecords()
```

### 引数

なし。

### 返値

`NDEFRecord` のリストです。

例外
--

`NotSupported` `DOMException`

ユーザーエージェントが `NDEFRecord.data` と `NDEFRecord.recordType` のこの組み合わせを解釈する方法を知らないことを示します。

例
-

NDEF メッセージをペイロードとする外部レコードを読み取ります。

 この例では、外部型レコードを使用して、アプリケーション定義のレコードを作成します。
 これらのレコードはペイロードとして `NDEFMessage` を含むことができ、アプリケーションのコンテキストで使用されるローカル型を含む独自の `NDEFRecord` オブジェクトが含まれます。スマートポスターレコード型は、ペイロードとして NDEF メッセージも含んでいることに注意してください。

NDEF はレコードの順序を保証しないので、ペイロードとして NDEF メッセージを持つ外部型レコードを使用することは、関連するデータをカプセル化するのに便利です。

この例は、ソーシャルポストの外部レコードを読み取る方法を示しています。このレコードは `NDEFMessage` を含み、テキストレコードとローカル型 "act" (action) のレコードを含み、定義はスマートポスターから借用しますがローカルアプリケーションコンテキストで使用されます。


```js
const ndefReader = new NDEFReader();
await ndefReader.scan();
ndefReader.onreading = (event) => {
  const externalRecord = event.message.records.find(
    (record) => record.type === "example.com:smart-poster",
  );

  let action, text;

  for (const record of externalRecord.toRecords()) {
    if (record.recordType === "text") {
      const decoder = new TextDecoder(record.encoding);
      text = decoder.decode(record.data);
    } else if (record.recordType === ":act") {
      action = record.data.getUint8(0);
    }
  }

  switch (action) {
    case 0: // do the action
      console.log(`Post "${text}" to timeline`);
      break;
    case 1: // save for later
      console.log(`Save "${text}" as a draft`);
      break;
    case 2: // open for editing
      console.log(`Show editable post with "${text}"`);
      break;
  }
};
```

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-torecords |

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

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

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

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

**`id`** は `NDEFRecord` インターフェイスのプロパティで、このレコードを識別するのに使用される絶対または相対 URL をレコード識別子として返します。

この識別子は、レコード識別子の一意性を強制する責任を負うレコードの生成者によって作成されま す。ウェブ NFC は NFC コンテンツに署名しないので、レコード利用者は識別子やレコードの他の部分の完全性や信憑性について、いかなる仮定もすべきではありません。

構文
--


```js
NDEFRecord.id
```

### 値

文字列です。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-id |

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

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

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

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

**`lang`** は `NDEFRecord` インターフェイスのプロパティで、テキストのペイロードの言語を返します。提供されていない場合は `null` を返します。

レコードには言語タグが付いていないことがあります。例えば、記録された情報がロケールに依存しない場合などです。

構文
--


```js
NDEFRecord.lang
```

### 値

文字列です。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefrecord-lang |

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

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

関連情報
----

* HTML の `lang` 属性: 文書やその要素のコンテンツの言語を宣言します
* コンテンツの言語を宣言する HTTP ヘッダー: `Content-Language` および `Accept-Language`