recursal/MDN huggingface dataset:
console.log()
=============

**`console.log()`** メソッドは、メッセージをウェブコンソールに出力します。
 このメッセージは単一の文字列（オプションの置換値を含む）であることもあれば、1 つ以上の JavaScript オブジェクトであることもあります。

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

構文
--


```js
log(obj1);
log(obj1, /\* …, \*/ objN);
log(msg);
log(msg, subst1, /\* …, \*/ substN);
```

### 引数

`obj1` … `objN`

出力する JavaScript オブジェクトのリスト。各オブジェクトの文字列表現が記述順で出力されます。 Chrome や Firefox の比較的新しいバージョンを使っているなら注意が必要です。これらのブラウザーで記録されるのは*オブジェクトへの参照*です。そのため、 `console.log()` を呼び出した時点でのオブジェクトの「値」が表示されるのではなく、内容を見るために開いた時点での値が表示されます。

`msg`

0 個以上の置換文字列を含む JavaScript 文字列。

`subst1` … `substN`

JavaScript オブジェクトと `msg` 内の置換文字列を置換。これにより、出力の書式の詳細な制御が可能となります。

詳細については `console` のコンソールへのテキストの出力の節を参照して下さい。

### 返値

なし (`undefined`)。

オブジェクトのログ出力
-----------

`console.log(obj)` を使わず、 `console.log(JSON.parse(JSON.stringify(obj)))` を使用してください。

これにより、ログを記録した瞬間の `obj` の値を確実に見ることができます。こうしないと、多くのブラウザーでは値が変化したときに常に更新されるライブビューになります。これは望むことではないかもしれません。

仕様書
---

| Specification |
| --- |
| Console Standard # log |

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

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

関連情報
----

* MSDN: F12 ツールのコンソールを使ったエラーおよびステータスの表示
* NodeJS: Console API
console.warn()
==============

**`console.warn()`** メソッドは、ウェブコンソールに警告メッセージを出力します。

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

**メモ:** Chrome と Firefox では、警告メッセージはウェブコンソール上で小さな感嘆符の隣に表示されます。

構文
--


```js
warn(obj1);
warn(obj1, /\* …, \*/ objN);
warn(msg);
warn(msg, subst1, /\* …, \*/ substN);
```

引数
--

`obj1` … `objN`

出力する JavaScript オブジェクトのリスト。各オブジェクトを文字列で表現したものを、リストの並び順に追記して出力します。

`msg`

0 個以上の置換文字列を含む JavaScript 文字列。

`subst1` … `substN`

`msg` 内の置換文字列を置き換える JavaScript オブジェクト。これにより、出力形式を高度に制御できます。

詳しくは `console` のドキュメントで、コンソールへのテキストの出力をご覧ください。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # warn |

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

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

関連情報
----

* MSDN: F12 ツールのコンソールを使ったエラーおよびステータスの表示
console.info()
==============

**`console.info()`** メソッドは、ウェブコンソールに情報メッセージを出力します。Firefox では、ウェブコンソールでこれらの項目の隣に小さな "i" のアイコンを表示します。

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

構文
--


```js
info(obj1);
info(obj1, /\* …, \*/ objN);
info(msg);
info(msg, subst1, /\* …, \*/ substN);
```

引数
--

`obj1` … `objN`

出力する JavaScript オブジェクトのリスト。各オブジェクトを文字列で表現したものを、リストの並び順に追記して出力します。

`msg`

0 個以上の置換文字列を含む JavaScript 文字列。

`subst1` … `substN`

`msg` 内の置換文字列を置き換える JavaScript オブジェクト。これにより、出力形式を高度に制御できます。

詳しくは `console` のドキュメントで、コンソールへのテキストの出力 をご覧ください。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # info |

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

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

関連情報
----

* MSDN: F12 ツールのコンソールを使ったエラーおよびステータスの表示
console.dir()
=============

**`console.dir()`** メソッドは、指定された JavaScript オブジェクトのプロパティの対話的なリストを表示します。出力は折り畳み式の階層的なリストで表示され、子オブジェクトの中身を見ることができます。

言い換えれば `console.dir()` は指定された JavaScript オブジェクトのプロパティをすべてコンソール上で見る方法であり、開発者は簡単にオブジェクトのプロパティを得ることができます。

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

![console-dir.png](/ja/docs/Web/API/console/dir_static/console-dir.png)

構文
--


```js
dir(object);
```

### 引数

`object`

プロパティを出力する JavaScript オブジェクトです。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # dir |

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

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

関連情報
----

* MSDN: F12 ツールのコンソールを使ったエラーおよびステータスの表示
* Chrome Console API reference
console.time()
==============

**`console.time()`** メソッドは、長い処理がどれくらいかかるかを計測することができるタイマーを起動します。それぞれのタイマーに固有の名前を付けると、そのページに 10,000 個までのタイマーを実行させることができます。同じ名前を引数として `console.timeEnd()` を呼び出すと、タイマー開始からの経過時間がミリ秒単位で出力されます。

詳細や使用例については、 `console` のページのタイマーを参照して下さい。

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

構文
--


```js
time(label);
```

### 引数

`label`

新しいタイマーにつける名前です。それぞれのタイマーの識別に用います。同じ名前を使用して `console.timeEnd()` を呼び出すと、タイマーを終了して時間をコンソールに出力します。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # time |

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

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

関連情報
----

* `console.timeEnd()`
* `console.timeLog()`
console.timeStamp()
===================

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**`console.timeStamp`** メソッドは、単一のマーカーをブラウザーのパフォーマンスツール（Firefox, Chrome）に追加します。これにより、コード内のポイントを、タイムライン上に記録されたほかのポイント、例えばレイアウトや描画のイベントなどと結びつけることができます。

任意で、引数を指定してタイムラインにラベル付することができ、このラベルはマーカーのそばに表示されます。

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

構文
--


```js
timeStamp(label);
```

引数
--

`label`

タイムスタンプのラベル。省略可能です。

### 返値

なし (`undefined`)。

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

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

関連情報
----

* `console.time()`
* `console.timeEnd()`
* コンソール API によるマーカーの追加
console.groupCollapsed()
========================

**`console.groupCollapsed()`** メソッドは、ウェブコンソールに新たなインライングループを作成します。 `console.group()` とは異なり、新しいグループは折りたたまれた状態で作成されます。グループ内に作成された項目を表示するには、グループの隣にある展開ボタンを使用する必要があります。

親グループに戻るには、`console.groupEnd()` を呼び出します。

詳細および使用例は `console` のドキュメントで、コンソールでのグループの使用 をご覧ください。

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

構文
--


```js
groupCollapsed();
groupCollapsed(label);
```

### 引数

`label`

グループのラベルです。省略可能です。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # groupcollapsed |

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

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

**`console.groupEnd()`** メソッドは、ウェブコンソールで現在のインライングループから出ます。詳細および使用例は `console` のドキュメントで、コンソールでのグループの使用をご覧ください。

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

構文
--


```js
groupEnd();
```

### 引数

なし。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # groupend |

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

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

関連情報
----

* `console.group()`
console.timeLog()
=================

**`console.timeLog()`** メソッドは、前回 `console.time()` を呼び出すことで起動したタイマーの現在の値をコンソールに記録します。

詳細や例のドキュメントについてはタイマーを参照してください。

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

構文
--


```js
timeLog(label);
```

### 引数

`label`

コンソールに記録するタイマーの名前。

### 返値

label 引数が含まれなかった場合:
```

default: 1042ms
```


既存の `label` が指定された場合:
```

タイマー名: 1242ms
```

### 例外

動作中のタイマーがなかった場合、 `timeLog()` は次の警告を返します。
```

Timer "default" doesn't exist.
```


label 引数が指定されているものの、対応するタイマーがない場合:
```

Timer "timer name" doesn't exist.
```

例
-


```js
console.time("answer time");
alert("Click to continue");
console.timeLog("answer time");
alert("Do a bunch of other stuff…");
console.timeEnd("answer time");
```


上記の例の出力は、ユーザーが最初のアラートボックスを解除するのにかかった時間と、続いて 2 つ目のアラートを解除するのにかかった時間を示しています。

![](/ja/docs/Web/API/console/timelog_static/timer_output.png)

`timeLog()` を使用してタイマーの値を記録したとき、そして停止するしたに再びタイマーの名前が表示されることに注意してください。さらに、 timeEnd() を呼び出すと、タイマーが時間を追跡していないことを明らかにするために、 "timer ended" という追加の情報を保有しています。

仕様書
---

| Specification |
| --- |
| Console Standard # timelog |

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

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

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**`console.profile()`** はパフォーマンスプロファイル（例えば Firefox の パフォーマンスツール）の記録を開始します。

任意でプロファイル名を引数として与えることができ、複数のプロファイルを記録している場合に特定のプロファイルのみ停止することができます。引数の解釈方法については、`console.profileEnd()` をご覧ください。

`console.profileEnd()` を呼び出すと、記録を終了します。

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

構文
--


```js
profile(profileName);
```

### 引数

`profileName`

プロファイルにつける名前。省略可能です。

### 返値

なし (`undefined`)。

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

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

関連情報
----

* `console.profileEnd()`
console.dirxml()
================

**`console.dirxml()`** メソッドは、指定した XML/HTML 要素の子孫要素を対話式ツリーを表示します。要素として表示できない場合は、代わりに JavaScript オブジェクトのビューを表示します。出力は、子ノードの内容を見ることができる展開可能なノードの階層的なリストとして表示されます。

構文
--


```js
dirxml(object);
```

### 引数

`object`

プロパティを出力する JavaScript オブジェクト

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # dirxml |

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

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

**`console.clear()`** メソッドは、実行環境が許可すれば、コンソールを消去します。ブラウザー上で実行されるようなグラフィカルコンソールでは、おそらく許可されます。 Node 上で実行されているような、端末上に表示されているコンソールでは、対応しておらず、何も効果がありません（エラーも発生しません）。

構文
--


```js
clear();
```

### 引数

なし。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # clear |

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

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

**`console.count()`** メソッドは、 `count()` を実際に呼び出した回数を記録します。

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

構文
--


```js
count();
count(label);
```

### 引数

`label` 省略可

文字列です。指定した場合、 `count()` はそのラベルを用いて呼び出した回数を出力します。省略した場合は、 `count()` は "default" ラベルで呼び出されたように動作します。

### 返値

なし (`undefined`)。

例
-

例えば、次のようなコードがあったとします。


```js
let user = "";

function greet() {
  console.count();
  return `hi ${user}`;
}

user = "bob";
greet();
user = "alice";
greet();
greet();
console.count();
```


コンソールへの出力は、次のようになります。
```

"default: 1"
"default: 2"
"default: 3"
"default: 4"
```


特にラベルが指定されていないので、表示されているラベルは `default` となっています。

変数 `user` を `label` 引数として、最初の `count()` の呼び出しには文字列 "bob" を、 2 回目の呼び出しには文字列 "alice" を渡してみます。


```js
let user = "";

function greet() {
  console.count(user);
  return `hi ${user}`;
}

user = "bob";
greet();
user = "alice";
greet();
greet();
console.count("alice");
```


以下のように出力されます。
```

"bob: 1"
"alice: 1"
"alice: 2"
"alice: 3"
```


`label` の値のみに基づいて、個々の呼び出し回数を管理しています。

仕様書
---

| Specification |
| --- |
| Console Standard # count |

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

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

**`console.trace()`** メソッドは、ウェブコンソールにスタックトレースを出力します。

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

詳細や使用例については、`console` のドキュメントのスタックトレースをご覧ください。

構文
--


```js
trace();
trace(object1, /\* …, \*/ objectN);
```

### 引数

`objects` 省略可

スタックトレースと共にコンソールに出力する 0 個以上のオブジェクトです。これらは `console.log()` メソッドに渡したのと同じ方法で構成され書式化されます。

### 返値

なし (`undefined`)。

例
-


```js
function foo() {
  function bar() {
    console.trace();
  }
  bar();
}

foo();
```


コンソールには次のようなトレースが表示されます。
```

bar
foo
<anonymous>
```

仕様書
---

| Specification |
| --- |
| Console Standard # trace |

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

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

**`console.debug()`** メソッドは、メッセージを "debug" ログレベルでウェブコンソールに出力します。このメッセージは、デバッグ出力を表示するようにコンソールが構成されている場合にのみユーザーに表示されます。多くの場合、ログレベルはコンソールの UI の中で構成します。このログレベルは `Debug` または `Verbose` ログレベルに相当します。

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

構文
--


```js
debug(obj1);
debug(obj1, /\* …, \*/ objN);
debug(msg);
debug(msg, subst1, /\* …, \*/ substN);
```

### 引数

`obj1` … `objN`

出力する JavaScript オブジェクトのリスト。これらの各オブジェクトの文字列表現は、リストされた順に追加され、コンソールに出力されます。

`msg`

連続した順序で `subst1` から `substN` に置き換えられる 0 個以上の置換文字列を含む JavaScript 文字列です。

`subst1` … `substN`

`msg` 内の置換文字列を置換する JavaScript オブジェクト。これにより、出力の形式をさらに制御できます。置換のしくみの説明については、 `console` の文字列置換の使用を参照してください。

詳細については、`console` オブジェクトのドキュメントのコンソールへのテキストの出力を参照してください。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # debug |

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

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

**`console.group()`** メソッドは、ウェブコンソールのログに、新たなインライングループを作成します。`console.groupEnd()` を呼び出すまで、以降のすべての出力を 1 段階字下げします。

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

構文
--


```js
group();
group(label);
```

### 引数

`label` 省略可

グループ用のラベルです。

### 返値

なし (`undefined`)。

例
-

ネストされたグループを使用して関連したメッセージを視覚的に結びつけることで、出力を整理する手助けができます。新しいネストのブロックを作成するには、`console.group()` を呼び出します。`console.groupCollapsed()` メソッドは類似していますが、新しいブロックが折りたたまれており、表示するには、展開ボタンをクリックする必要があります。

現在のグループを終了するには、`console.groupEnd()` を呼び出してください。例えば、以下のようなコードがあったとします。


```js
console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.log("Back to the outer level");
```


出力は以下のようになります。

![A screenshot of messages nested in the console output.](/ja/docs/Web/API/console/group_static/nesting.png)

詳しくは、`console` のドキュメントで コンソールでのグループの使用をご覧ください。

仕様書
---

| Specification |
| --- |
| Console Standard # group |

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

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

関連情報
----

* `console.groupEnd()`
console.table()
===============

**`console.table()`** メソッドは、表形式のデータを表として表示します。

この関数には必須の引数 `data` があり、これは配列またはオブジェクトでなければなりません。また、省略可能な引数 `columns` もあります。

これは `data` を表として出力します。配列の各要素（`data` がオブジェクトである場合は、列挙可能なプロパティ）が、表の行になります。

表の 1 列目には、`(添字)` というラベルがつきます。 `data` が配列である場合、この値は配列の添字になります。 `data` がオブジェクトである場合、この値はプロパティ名になります。（Firefox では） `console.table` は表示する行が 1000 行（最初の行は見出し）に制限されていますので注意してください。

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

プリミティブ型のコレクション
--------------

引数 `data` に、配列またはオブジェクトを渡すことができます。


```js
// 文字列の配列

console.table(["apples", "oranges", "bananas"]);
```


![](/ja/docs/Web/API/console/table_static/console-table-array.png)


```js
// 文字列がプロパティであるオブジェクト

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const me = new Person("John", "Smith");

console.table(me);
```


![](/ja/docs/Web/API/console/table_static/console-table-simple-object.png)

### 複合的な型の集合

配列の要素やオブジェクトのプロパティが、それ自身配列やオブジェクトである場合、その要素やプロパティは列ごとに 1 つずつ、行に列挙されます。


```js
// 配列の配列

const people = [
  ["John", "Smith"],
  ["Jane", "Doe"],
  ["Emily", "Jones"],
];
console.table(people);
```


![配列の配列を表示している表](/ja/docs/Web/API/console/table_static/console-table-array-of-array.png)


```js
// オブジェクトの配列

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const john = new Person("John", "Smith");
const jane = new Person("Jane", "Doe");
const emily = new Person("Emily", "Jones");

console.table([john, jane, emily]);
```


配列にオブジェクトが含まれている場合、列にはプロパティ名が表示されることに注意してください。

![Table displaying array of objects](/ja/docs/Web/API/console/table_static/console-table-array-of-objects.png)


```js
// 値がオブジェクトのプロパティを持つオブジェクト

const family = {};

family.mother = new Person("Jane", "Smith");
family.father = new Person("John", "Smith");
family.daughter = new Person("Emily", "Smith");

console.table(family);
```


![オブジェクトのオブジェクトを表示している表](/ja/docs/Web/API/console/table_static/console-table-object-of-objects.png)

### 表示する列を制限する

既定では、`console.table()` はすべての要素を各行に出力します。省略可能な引数 `columns` を使用すると、表示する列のサブセットを選択することができます。


```js
// オブジェクトの配列、ただし firstName のみ表示

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const john = new Person("John", "Smith");
const jane = new Person("Jane", "Doe");
const emily = new Person("Emily", "Jones");

console.table([john, jane, emily], ["firstName"]);
```


![フィルタリングされた出力を持つオブジェクトの配列を表示する表](/ja/docs/Web/API/console/table_static/console-table-array-of-objects-firstname-only.png)

### 列で並べ替える

列の見出しをクリックすると、その列の値で表を並べ替えることができます。

構文
--


```js
table(data);
table(data, columns);
```

### 引数

`data`

表示するデータ。配列またはオブジェクトでなければなりません。

`columns`

出力に含める列の名前を含む配列。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # table |

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

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

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**警告:** console.profile() の直後に本 API を呼び出すと、本 API が動作しないことがあります。これを回避するには、 setTimeout の中で 5ms 以上遅延させて呼び出してください。 Firefox バグ 1240249 を参照してください。

**`console.profileEnd()`** メソッドは、 `console.profile()` で開始したプロファイルの記録を終了します。

任意で引数にプロファイル名を与えることができます。引数を与えると、複数のプロファイルを記録している場合に特定のプロファイルのみ停止することができます。

* `console.profileEnd()` に記録中のプロファイル名に一致する名称を渡すと、そのプロファイルを終了します。
* `console.profileEnd()` に記録中のプロファイル名に一致しない名称を渡すと、何も行いません。
* `console.profileEnd()` にプロファイル名を渡さない場合は、直近に開始したプロファイルを終了します。

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

構文
--


```js
profileEnd(profileName);
```

### 引数

`profileName`

プロファイルにつける名前。この引数は省略可能です。

### 返値

なし (`undefined`)。

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

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

関連情報
----

* `console.profile()`
console.error()
===============

**`console.error()`** メソッドは、エラーメッセージをウェブコンソールに出力します。

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

構文
--


```js
error(obj1);
error(obj1, /\* …, \*/ objN);
error(msg);
error(msg, subst1, /\* …, \*/ substN);
```

### 引数

`obj1` … `objN`

出力する JavaScript オブジェクトのリスト。 各オブジェクトの文字列表現が記述順で出力されます。

`msg`

0 個以上の置換文字列 (substitution strings) を含む JavaScript 文字列です。

`subst1` … `substN`

`msg` 内の置換文字列を置換する JavaScript オブジェクト。これにより、出力の書式の詳細な制御が可能となります。

詳細については、`console` ドキュメント内のコンソールへのテキストの出力を参照してください。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| Console Standard # error |

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

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

関連情報
----

* MSDN: F12 ツールのコンソールを使ったエラーおよびステータスの表示
* Chrome Developer Tools: Using the Console
console.countReset()
====================

**`console.countReset()`** は `console.count()` で使われたカウンターをリセットします。

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

構文
--


```js
countReset();
countReset(label);
```

### 引数

`label` 省略可

文字列です。指定した場合、 `countReset()` はそのラベルに対するカウントを 0 にリセットします。省略した場合は、 `countReset()` は default のカウンターを 0 にリセットします。

### 返値

なし (`undefined`)。

例
-

例えば、次のようなコードがあったとします。


```js
let user = "";

function greet() {
  console.count();
  return `hi ${user}`;
}

user = "bob";
greet();
user = "alice";
greet();
greet();
console.count();
console.countReset();
```


コンソールへの出力は、次のようになります。
```

"default: 1"
"default: 2"
"default: 3"
"default: 4"
"default: 0"
```


`console.counterReset()` の呼び出しによって default のカウンターが 0 にリセットされたことに注意してください。

変数 `user` を `label` 引数として、最初の `count()` の呼び出しには文字列 "bob" を、 2 回目の呼び出しには文字列 "alice" を渡してみます。


```js
let user = "";

function greet() {
  console.count(user);
  return `hi ${user}`;
}

user = "bob";
greet();
user = "alice";
greet();
greet();
console.countReset("bob");
console.count("alice");
```


以下のように出力されます。
```

"bob: 1"
"alice: 1"
"alice: 2"
"bob: 0"
"alice: 3"
```


"bob" のカウンターをリセットしたとき他のカウンターに影響を与えません。 "alice" のカウンターは変更されません。

仕様書
---

| Specification |
| --- |
| Console Standard # countreset |

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

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

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

**`message`** は `NDEFReadingEvent` インターフェイスのプロパティで、受信したメッセージの入った `NDEFMessage` オブジェクトを返します。

値
-

`NDEFMessage` オブジェクト。

例
-

この例では、 1 つのタグを読み込んでからポーリングを停止する便利な関数を作成し、不要な作業を減らしてバッテリーの寿命を延ばす方法を示します。この例は、与えられたミリ秒の量の後にタイムアウトするように簡単に拡張することができます。


```js
const ndefReader = new NDEFReader();

function read() {
  return new Promise((resolve, reject) => {
    const ctlr = new AbortController();
    ctlr.signal.onabort = reject;
    ndefReader.addEventListener(
      "reading",
      (event) => {
        ctlr.abort();
        resolve(event);
      },
      { once: true },
    );
    ndefReader.scan({ signal: ctlr.signal }).catch((err) => reject(err));
  });
}

read().then(({ serialNumber }) => {
  console.log(serialNumber);
});
```

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefreadingevent-message |

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

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

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

**`serialNumber`** は `NDEFReadingEvent` インターフェイスのプロパティで、衝突防止や識別に使用する機器のシリアル番号、またはシリアル番号がない場合は空文字列を返します。

値
-

機器のシリアル番号が入った文字列です。

例
-

この例では、 1 つのタグを読み込んでからポーリングを停止する便利な関数を作成し、不要な作業を減らしてバッテリーの寿命を延ばす方法を示します。この例は、与えられたミリ秒の量の後にタイムアウトするように簡単に拡張することができます。


```js
const ndefReader = new NDEFReader();

function read() {
  return new Promise((resolve, reject) => {
    const ctlr = new AbortController();
    ctlr.signal.onabort = reject;
    ndefReader.addEventListener(
      "reading",
      (event) => {
        ctlr.abort();
        resolve(event);
      },
      { once: true },
    );
    ndefReader.scan({ signal: ctlr.signal }).catch((err) => reject(err));
  });
}

read().then(({ serialNumber }) => {
  console.log(serialNumber);
});
```

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefreadingevent-serialnumber |

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

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

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

**`NDEFReadingEvent()`** コンストラクターは、新しい `NDEFReadingEvent` オブジェクトを作成します。これは `NDEFReader` によって得られる新しい NFC 読み取りに対して配信するイベントを表します。

構文
--


```js
new NDEFReadingEvent(type, options);
```

### 引数

`type`

常に `'type'` です。

`options`

以下のメンバーを持つオブジェクトです。

`serialNumber`

メッセージが読み取られた機器のシリアル番号です。

`message`

以下のメンバーを持つオブジェクトの配列です。

`data` 省略可

転送されるデータが入ります。文字列、`BufferSource`、ネストされたレコードの配列のいずれかです。

`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 です。



仕様書
---

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

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

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

`IDBCursor` インターフェイスの読み取り専用プロパティ **`primaryKey`** は、カーソルの現在の実効キーを返します。カーソルが現在反復中であったり、範囲外まで反復した場合は、`undefined` になります。カーソルの主キーは任意のデータ型になり得ます。

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

値
-

任意のデータ型の値です。

例
-

このシンプルな断片では、トランザクションを作成し、オブジェクトストアを取得し、カーソルを用いてオブジェクトストア内の全レコードを走査します。それぞれの繰り返しでは、たとえば以下のような、カーソルの主キーをコンソールに記録します。(主キーである、アルバムのタイトルです)
```

Hemispheres
```


カーソルを用いる場合、データをキーで選択する必要はなく、単に全て取得できます。また、ループ中のそれぞれの繰り返しにおいて、カーソルオブジェクトが指している現在のレコードのデータを `cursor.value.foo` のようにして取得できます。動く例全体は、IDBCursor example を参照してください。(動く例を見る)


```js
function displayData() {
  const transaction = db.transaction(["rushAlbumList"], "readonly");
  const objectStore = transaction.objectStore("rushAlbumList");

  objectStore.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const listItem = document.createElement("li");
      listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
      list.appendChild(listItem);

      console.log(cursor.primaryKey);
      cursor.continue();
    } else {
      console.log("全エントリーを表示しました。");
    }
  };
}
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbcursor-primarykey① |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲の設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* リファレンス例: To-do Notifications (動く例を見る)