recursal/MDN huggingface dataset:
Error.prototype.fileName
========================

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

**`fileName`** プロパティは、このエラーを起こしたファイルへのパスを含みます。

解説
--

この標準外のプロパティは、このエラーを起こしたファイルへのパスが入ります。デバッガーのコンテキストから呼び出された場合、例えば Firefox 開発ツールでは、"debugger eval code" が返されます。

例
-

### fileName の使用


```js
var e = new Error("Could not parse input");
throw e;
// e.fileName could look like "file:///C:/example.html"
```

仕様書
---

仕様の一部ではありません。

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

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

関連情報
----

* `Error.prototype.stack`
* `Error.prototype.columnNumber`
* `Error.prototype.fileName`
Error.prototype.name
====================

**`name`** プロパティは、エラーの種類の名称を表します。初期値は "Error" です。

解説
--

既定で `Error` インスタンスには "Error" という名称が与えられます。 `name` プロパティは `message` プロパティに加えて、 Error の文字列表現を生成するため、`Error.prototype.toString()` メソッドにより使用されます。

例
-

### 独自のエラーを発生させる


```js
var e = new Error("Malformed input"); // e.name は 'Error'

e.name = "ParseError";
throw e;
// e.toString() would return 'ParseError: Malformed input'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-error.prototype.name |

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

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

関連情報
----

* `Error.prototype.message`
* `Error.prototype.toString()`
Error.prototype.toString()
==========================

**`toString()`** メソッドは、指定した `Error` オブジェクトを表す文字列を返します。

構文
--
```

e.toString()
```

### 返値

指定した `Error` オブジェクトを表す文字列です。

解説
--

`Error` オブジェクトは、すべてのオブジェクトに継承される `Object.prototype.toString()` メソッドを上書きします。その意味は、次のようなものです (`Object` と `String` は元の値を持つと仮定します)。


```js
Error.prototype.toString = function () {
  "use strict";

  var obj = Object(this);
  if (obj !== this) {
    throw new TypeError();
  }

  var name = this.name;
  name = name === undefined ? "Error" : String(name);

  var msg = this.message;
  msg = msg === undefined ? "" : String(msg);

  if (name === "") {
    return msg;
  }
  if (msg === "") {
    return name;
  }

  return name + ": " + msg;
};
```

例
-

### toString() の使用


```js
var e = new Error("fatal error");
console.log(e.toString()); // 'Error: fatal error'

e.name = undefined;
console.log(e.toString()); // 'Error: fatal error'

e.name = "";
console.log(e.toString()); // 'fatal error'

e.message = undefined;
console.log(e.toString()); // ''

e.name = "hello";
console.log(e.toString()); // 'hello'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-error.prototype.tostring |

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

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

関連情報
----

* `Error.prototype.toSource()`
Error() コンストラクター
================

**`Error`** コンストラクターは、エラーオブジェクトを生成します。

構文
--
```

new Error([message[, fileName[, lineNumber]]])
```

### 引数

`message`省略可

人間が読めるエラーの説明。

`fileName` 省略可
Non-standard

生成された `Error` オブジェクト上の `fileName` プロパティに設定される値。既定では、`Error()` コンストラクターを呼び出したコードを含むファイルの名前です。

`lineNumber` 省略可
Non-standard

生成された `Error` オブジェクト上の `lineNumber` プロパティに設定される値。既定では、`Error()` コンストラクターの呼び出しを含む行番号。

例
-

### 関数呼び出しか new による構築か

`Error` が関数のように使用された場合 — `new` がなかった場合、 `Error` オブジェクトを返します。したがって、 `Error` を呼び出すだけで `Error` オブジェクトを `new` キーワードから構築した場合と同じものを出力します。


```js
// これは...
const x = Error("関数呼び出しによって生成されました。");

// ...これと同じ機能です。
const y = new Error('"new" キーワードによって生成されました。');
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-error-constructor |

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

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

関連情報
----

* `throw`
* `try...catch`
URIError() コンストラクター
===================

**`URIError`** コンストラクターは、グローバルの URI 操作関数が間違った方法で使用された場合のエラーを生成します。

構文
--
```

new URIError([message[, fileName[, lineNumber]]])
```

### 引数

`message` 省略可

人間が読むためのエラーの説明です。

`fileName` 省略可

例外が発生したコードを含むファイルの名前です。

`lineNumber` 省略可

例外が発生したコードの行番号です。

例
-

### URIError の捕捉


```js
try {
  decodeURIComponent("%");
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message); // "malformed URI sequence"
  console.log(e.name); // "URIError"
  console.log(e.fileName); // "Scratchpad/1"
  console.log(e.lineNumber); // 2
  console.log(e.columnNumber); // 2
  console.log(e.stack); // "@Scratchpad/2:2:3\n"
}
```

### URIError の生成


```js
try {
  throw new URIError("Hello", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "URIError"
  console.log(e.fileName); // "someFile.js"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // "@Scratchpad/2:2:9\n"
}
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-nativeerror-constructors |

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

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

関連情報
----

* `Error`
* `decodeURI()`
* `decodeURIComponent()`
* `encodeURI()`
* `encodeURIComponent()`
Iterator.prototype[@@iterator]()
================================

**`[@@iterator]()`** は `Iterator` インスタンスのメソッドで、反復可能プロトコルを実行し、組み込みイテレーターが反復可能オブジェクトを期待する大部分の構文、例えばスプレッド構文や `for...of` ループなどで利用できるようにします。これは `this` の値、すなわちイテレーターオブジェクト自身を返します。

試してみましょう
--------

構文
--


```js
iterator[Symbol.iterator]()
```

### 返値

`this` の値、すなわちイテレーターオブジェクト自身です。

例
-

### for...of ループを使用した反復処理

このメソッドを直接呼び出す必要はめったにないことに注意してください。`iterator` メソッドの存在により、組み込みのイテレーターはすべて[反復可能] (/ja/docs/Web/JavaScript/Reference/Iteration\_protocols#反復可能プロトコル)となり、`for...of` ループのような反復処理構文はループオーバーするために自動的にこのメソッドを呼び出してイテレーターを取得します。


```js
const arrIterator = [1, 2, 3].values();
for (const value of arrIterator) {
  console.log(value);
}
// ログ: 1, 2, 3
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-%iteratorprototype%-@@iterator |

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

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

関連情報
----

* `for...of`
AsyncGenerator.prototype.return()
=================================

**`return()`** は `AsyncGenerator` インスタンスのメソッドで、あたかも `return` 文がジェネレーター本体の中の停止中の位置に挿入されたかのように動作し、ジェネレーターを終了して、`try...finally` ブロックと組み合わせた際に、ジェネレーターが任意のクリーンアップタスクを実行できるようにします。

構文
--


```js
asyncGeneratorObject.return(value)
```

### 引数

`value`

返す値です。

### 返値

`Promise` で、2 つのプロパティを持つ `Object` に解決します。

`done`

論理値です。

* `true`: ジェネレーター関数の制御フローが最後に達した場合。
* `false`: ジェネレーター関数の制御フローが最後に達しておらず、さらに値を生成できる場合。これは `return` が `try...finally` で捉えられ、さらに `finally` ブロックの中に `yield` 式がある場合のみ起こりえます。

`value`

引数として指定された値、または `yield` 式が `try...finally` でラップされている場合、 `finally` ブロックから得られる/返す値を返します。

解説
--

`return()` メソッドは、呼び出されると、ジェネレーター本体の現在の停止位置に `return value;` 文が挿入されたように見ることができます（ここで `value` は `return()` メソッドを渡す値です）。したがって、典型的なフローでは、 `return(value)` を呼び出すと、 `{ done: true, value: value }` が 返されます。しかし、`yield` 式が `try...finally` ブロックでラップされている場合、制御フローは関数本体を抜けず、代わりに `finally` ブロックに進みます。この場合、`finally` ブロックの中にさらに `yield` 式があれば、返す値は異なり、`done` は `false` になる可能性もあります。

例
-

### return() の使用

次の例は、単純な非同期ジェネレーターと `return` メソッドを示しています。


```js
// An async task. Pretend it's doing something more useful
// in practice.
function delayedValue(time, value) {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve(value), time);
  });
}

async function\* createAsyncGenerator() {
  yield delayedValue(500, 1);
  yield delayedValue(500, 2);
  yield delayedValue(500, 3);
}

const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res)); // { value: 1, done: false }
asyncGen.return("foo").then((res) => console.log(res)); // { value: "foo", done: true }
asyncGen.next().then((res) => console.log(res)); // { value: undefined, done: true }
```

### ジェネレーターが完了した時に return() を一度使用

引数 `value` が `return()` メソッドに渡されない場合、プロミスは next() メソッドを呼び出したかのように解決します。この例では、ジェネレーターは完全に終了しているので、返される値は `undefined` となります。

ジェネレーターが "completed" 状態になった後でも `return()` は呼び出すことができますが、ジェネレーターはこの状態のままとなります。


```js
async function\* createAsyncGenerator() {
  yield await Promise.resolve(1);
  yield await Promise.resolve(2);
  yield await Promise.resolve(3);
}
const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res)); // { value: 1, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 2, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 3, done: false }
// value is returned undefined, as no value is passed and generator is 'done'
asyncGen.return().then((res) => console.log(res)); // { value: undefined, done: true }
// we can still return a value once the generator is complete
asyncGen.return(1).then((res) => console.log(res)); // { value: 1, done: true }
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-asyncgenerator-prototype-return |

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

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

関連情報
----

* `async function*`
* イテレーターとジェネレーター
AsyncGenerator.prototype.next()
===============================

**`next()`** メソッドは、シーケンス内の次の値を返します。

構文
--


```js
asyncGeneratorObject.next()
asyncGeneratorObject.next(value)
```

### 引数

`value` 省略可

ジェネレーターの内部状態を変更するために使用するオプションの値。`next()` メソッドに渡された値は、`yield` で受け取ります。

### 返値

`Promise` で、2 つのプロパティを持つ `Object` に解決します。

`done`

論理値です。

* `true`: ジェネレーターが制御フローの終端を過ぎている場合。この場合、`value` はジェネレーターの返値を指定します（値が undefined である可能性があります）。
* `false`: ジェネレーターがもっと多くの値を生成することができる場合。

`value`

ジェネレーターによってもたらされる、または返される任意の JavaScript 値。

例
-

### next() の使用

次の例は、単純なジェネレーターと `next` メソッドが返すオブジェクトを示しています。


```js
// 非同期タスクです。実際にはもっと有益なことを使用していることを
// 想定してください。
function delayedValue(time, value) {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve(value), time);
  });
}

async function\* createAsyncGenerator() {
  yield delayedValue(500, 1);
  yield delayedValue(500, 2);
  yield delayedValue(500, 3);
}

const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res)); // { value: 1, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 2, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 3, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: undefined, done: true }
```

### ジェネレーターに値を送信

この例では、`next` が値付きで呼び出されます。

**メモ:** 最初の呼び出しは、ジェネレーターが最初は何も出力しなかったため、何もログ出力しません。


```js
// 非同期タスクです。実際にはもっと有益なことを使用していることを
// 想定してください。
function sleep(time) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, time);
  });
}

async function\* createAsyncGenerator() {
  while (true) {
    await sleep(500);
    const value = yield;
    console.log(value);
  }
}

async function main() {
  const asyncGen = createAsyncGenerator();
  // No log at this step: the first value sent through `next` is lost
  console.log(await asyncGen.next(1)); // { value: undefined, done: false }
  // Logs 2: the value sent through `next`
  console.log(await asyncGen.next(2)); // { value: undefined, done: false }
}

main();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-asyncgenerator-prototype-next |

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

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

関連情報
----

* `async function*`
* イテレーターとジェネレーター
AsyncGenerator.prototype.throw()
================================

**`throw()`** は `AsyncGenerator` インスタンスのメソッドで、あたかも `throw` 文がジェネレーター本体の中の停止中の位置に挿入されたかのように動作し、エラー状態をジェネレーターに通知して、エラーを処理するか、クリーンアップを実行してそれ自身を閉じることができます。

構文
--


```js
asyncGeneratorObject.throw(exception)
```

### 引数

`exception`

発生される例外。デバッグの用途では、`instanceof` `Error` にすると便利です。

### 返値

発生したエラーを捕捉できない場合は、渡された例外で拒否する `Promise` を返します。

例外が `try...catch` で捉えられ、再開してジェネレーターが次の値を生成すると、次の 2 つのプロパティを持つ `Object` で解決する `Promise` を返します。

`done`

論理値です。

* `true`: このジェネレーター関数の制御フローが最後まで達した場合。
* `false`: このジェネレーターが次の値を生成することができる場合。

`value`

次の `yield` 式で生成される値。

例
-

### throw() の使用

次の例では、単純なジェネレーターと、`throw` メソッドを使用して発生したエラーについて示します。エラーは、通常通り `try...catch` ブロックで捕らえることができます。


```js
// 非同期タスクです。実際にはもっと有益なことを使用していることを
// 想定してください。
function sleep(time) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, time);
  });
}

async function\* createAsyncGenerator() {
  while (true) {
    try {
      await sleep(500);
      yield 42;
    } catch (e) {
      console.error(e);
    }
  }
}

const asyncGen = createAsyncGenerator();
asyncGen.next(1).then((res) => console.log(res)); // { value: 42, done: false }
asyncGen
  .throw(new Error("Something went wrong")) // Error: Something went wrong
  .then((res) => console.log(res)); // { value: 42, done: false }
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-asyncgenerator-prototype-throw |

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

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

関連情報
----

* `async function*`
* イテレーターとジェネレーター
AggregateError() コンストラクター
=========================

**`AggregateError()`** コンストラクターは、単一のエラーにラップする必要があるいくつかのエラーに対してエラーを作成します。

構文
--


```js
new AggregateError(errors);
new AggregateError(errors, message);
```

### 引数

`errors`

エラーの反復可能オブジェクトであり、実際には `Error` インスタンスではない場合があります。

`message`省略可

オプションで、統合エラーの人間可読な説明です。

例
-

### `AggregateError` の作成


```js
try {
  throw new AggregateError([new Error("some error")], "Hello");
} catch (e) {
  console.log(e instanceof AggregateError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "AggregateError"
  console.log(e.errors); // [ Error: "some error" ]
}
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-aggregate-error-constructor |

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

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

関連情報
----

* `AggregateError` のポリフィルが `core-js` で利用できます
* `Promise.any`
String.prototype.fontsize()
===========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`fontcolor()`** メソッドは、文字列を `<font>` 要素に埋め込み (`<font size="...">str</font>`)、文字列が指定されたフォントサイズで表示されるようにする文字列を生成します。

**メモ:** HTML ラッパーメソッドはすべて非推奨となっており、互換性目的のみで標準化されています。`fontsize()` の場合、`<font>` 要素は HTML5 で廃止されており、今後使用するべきではありません。代わりにウェブ開発者は CSS プロパティを使用してください。

構文
--


```js
fontsize(size)
```

### 引数

`size`

1 ～ 7 の整数、または 1 ～ 7 の符号付き整数を表す文字列です。

### 返値

開始タグ `<font size="size">` （`size` の中の二重引用符は `&quot;` に置き換えられます）、`str` のテキストが来て、終了タグ `</font>` が来る文字列です。

解説
--

`fontsize()` メソッド自体は、単純に文字列の部品を検証や正規化せずに接続するだけです。しかし、妥当な `<font>` 要素を作成するには、大きさを整数で指定した場合は、 `str` のフォントの大きさを 7 つの定義済みの大きさで設定します。 `size` を "-2" または "+3" のような文字列で指定すると、 `str` のフォントの大きさを既定値からの相対的な大きさで設定します。

例
-

### fontsize() の使用

以下の例では文字列のメソッドを使用して、文字列の大きさを変更しています。


```js
const worldString = "Hello, world";

console.log(worldString.small()); // <small>Hello, world</small>
console.log(worldString.big()); // <big>Hello, world</big>
console.log(worldString.fontsize(7)); // <font size="7">Hello, world</font>
```


`element.style` オブジェクトを使用すると、要素の `style` 属性を使用して、次のようにもっと汎用的に操作することができます。


```js
document.getElementById("yourElemId").style.fontSize = "0.7em";
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.fontsize |

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

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

関連情報
----

* `String.prototype.fontsize` のポリフィルは (`core-js`)
* `String.prototype.big()`
* `String.prototype.small()`
String.prototype.toString()
===========================

**`toString()`** メソッドは指定されたオブジェクトを表す文字列を返します。

試してみましょう
--------

構文
--


```js
toString()
```

### 返値

呼び出したオブジェクトを表す文字列です。

詳細
--

その `String` オブジェクトは、`Object` の `toString` メソッドを上書きします。つまり、`Object.prototype.toString()` を継承しません。`String` オブジェクトの `toString` メソッドは、そのオブジェクトを表す文字列を返します（`String.prototype.valueOf()` と同等です）。

`toString()` メソッドは `this` 値が `String` プリミティブまたはラッパーオブジェクトであることを要求します。他の `this` の値に対しては、文字列値に変換しようとせずに `TypeError` を発生します。

`String` には `[@@toPrimitive]()` メソッドがないため、JavaScript は `toString()` メソッドを、文字列が求められるコンテキスト、例えばテンプレートリテラルで `String` オブジェクトが使用されると、自動的に呼び出します。しかし、文字列プリミティブ値は文字列に変換するために `toString()` を呼び出しません。既に文字列なので、変換が実施されないからです。


```js
String.prototype.toString = () => "Overridden";
console.log(`${"foo"}`); // "foo"
console.log(`${new String("foo")}`); // "Overridden"
```

例
-

### toString() メソッドを使う

以下の例は、`String` オブジェクトを表す文字列の値を表示します。


```js
const x = new String("Hello world");

console.log(x.toString()); // "Hello world"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.tostring |

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

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

関連情報
----

* `String.prototype.valueOf()`
String.prototype.repeat()
=========================

**`repeat()`** メソッドは、呼び出し元の文字列を指定した数だけコピーして結合した新しい文字列を構築して返します。

試してみましょう
--------

構文
--


```js
repeat(count)
```

### 引数

`count`

`0` から`正の無限大`までの間の整数で、文字列を繰り返す数を示します。

### 返値

与えられた文字列の指定した回数分のコピーを含む新しい文字列です。

### 例外

`RangeError`

`count` が負の数であるか、 `count` が文字列の最大長を超えた場合に発生します。

例
-

### repeat() の使用


```js
"abc".repeat(-1); // RangeError
"abc".repeat(0); // ''
"abc".repeat(1); // 'abc'
"abc".repeat(2); // 'abcabc'
"abc".repeat(3.5); // 'abcabcabc' （小数は丸められ、整数の結果が返されます）
"abc".repeat(1 / 0); // RangeError

({ toString: () => "abc", repeat: String.prototype.repeat }).repeat(2);
// 'abcabc' （repeat() は汎用メソッドです）
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.repeat |

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

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

関連情報
----

* `String.prototype.repeat` のポリフィル )(`core-js`)
* `String.prototype.concat()`
String.prototype.italics()
==========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`italics()`** メソッドは、文字列を `<i>` 要素に埋め込んだ文字列 (`<i>str</i>`) を生成し、文字列がイタリック体で表示されるようにします。

**警告:** HTML ラッパーメソッドはすべて非推奨となっており、互換性目的のみで標準化されています。代わりに DOM API の `document.createElement()` などを使用してください。

構文
--


```js
italics()
```

### 返値

開始タグ `<b>` で始まり、テキスト `str` が来て、終了タグ `</b>` が来る文字列です。

解説
--

`italics()` メソッドは、文字列を `<i>` 要素の中に、 "`<i>str</i>`" のように埋め込みます。

例
-

### italics() の使用

以下の例では文字列のメソッドを使用して、文字列を整形しています。


```js
const worldString = "Hello, world";
console.log(worldString.blink()); // <blink>Hello, world</blink>
console.log(worldString.bold()); // <b>Hello, world</b>
console.log(worldString.italics()); // <i>Hello, world</i>
console.log(worldString.strike()); // <strike>Hello, world</strike>
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.italics |

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

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

関連情報
----

* `String.prototype.italics` のポリフィル (`core-js`)
* `String.prototype.blink()`
* `String.prototype.bold()`
* `String.prototype.strike()`
String.prototype.padEnd()
=========================

**`padEnd()`** メソッドは、結果の文字列が指定した長さになるように、現在の文字列を他の文字列で（必要に応じて繰り返して）延長します。延長は、現在の文字列の末尾から適用されます。

試してみましょう
--------

構文
--


```js
padEnd(targetLength)
padEnd(targetLength, padString)
```

### 引数

`targetLength`

現在の文字列の延長後に返される文字列の長さです。この値が現在の文字列の長さよりも短い場合、現在の文字列が返されます。

`padString` 省略可

現在の文字列を延長するための文字列です。この文字列が `targetLength` に収まらないほど長い場合は、左書きの言語では最も左の部分が、右書きの言語では最も右の部分が使用され、残りは切り捨てられます。この引数の既定値は、 " " (`U+0020`) です。

### 返値

`String` で、 `targetLength` で指定された長さにするために、 `padString` を現在の `str` の末尾に適用したものです。

例
-

### padEnd の使用


```js
"abc".padEnd(10); // "abc "
"abc".padEnd(10, "foo"); // "abcfoofoof"
"abc".padEnd(6, "123456"); // "abc123"
"abc".padEnd(1); // "abc"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.padend |

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

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

関連情報
----

* `String.prototype.padEnd` のポリフィル (`core-js`)
* `String.prototype.padStart()`
String() コンストラクター
=================

**`String`** コンストラクターは新しい `String` オブジェクトを生成します。関数として呼び出された場合は、文字列型のプリミティブ値を返します。

構文
--


```js
new String(thing)
String(thing)
```


**メモ:** `String()` は `new` があってもなくても呼び出せますが、効果は異なります。返値を参照してください。

### 引数

`thing`

文字列に変換するもの。

### 返値

`String` がコンストラクターとして（`new` 付きで）呼び出された場合、`String` オブジェクトを生成します。これはプリミティブでは**ありません**。

`String` が関数として呼び出された場合、引数を文字列プリミティブに変換します。シンボル値は例外を発生させず、`"Symbol(description)"` の形に変換され、この `description` はそのシンボルの description となります。

**警告:** `String` をコンストラクターとして使用する場面はほとんど見つからないでしょう。

例
-

### String コンストラクターと String 関数

String 関数と String コンストラクターは異なる結果を生み出します。


```js
const a = new String("Hello world"); // a === "Hello world" is false
const b = String("Hello world"); // b === "Hello world" is true
a instanceof String; // is true
b instanceof String; // is false
typeof a; // "object"
typeof b; // "string"
```


ここでは、この関数は約束通り (プリミティブ型の) 文字列を生成します。しかし、コンストラクターは String 型 (オブジェクトのラッパー) のインスタンスを生成しますので、 String コンストラクターを使用するのは稀だといえます。

### String() を用いてシンボルを文字列化

`String()` はシンボルを文字列に例外を発生させることなく変換することができる唯一の方法です。とても明示的だからです。


```js
const sym = Symbol("example");
`${sym}`; // TypeError: Cannot convert a Symbol value to a string
"" + sym; // TypeError: Cannot convert a Symbol value to a string
"".concat(sym); // TypeError: Cannot convert a Symbol value to a string
```



```js
const sym = Symbol("example");
String(sym); // "Symbol(example)"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string-constructor |

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

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

関連情報
----

* JavaScript ガイドのテキスト処理
String.prototype.link()
=======================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`link()`** メソッドは、文字列を `<a>` 要素に埋め込み (`<a href="...">str</a>`)、他の URL へのハイパーテイストリンクとして使用される文字列を生成します。

**メモ:** HTML ラッパーメソッドはすべて非推奨となっており、互換性目的のみで標準化されています。代わりに DOM API の `document.createElement()` などを使用してください。

構文
--


```js
link(url)
```

### 引数

`url`

`<a>` 要素の `href` 属性を指定する任意の文字列です。これは妥当な（相対または絶対）URL で、すべての `&` の文字を `&amp;` でエスケープしたものです。

### 返値

開始タグ `<a href="url">` （`url` の中の二重引用符は `&quot;` に置き換えられます）、`str` のテキストが来て、終了タグ `</a>` が来る文字列です。

例
-

### link() の使用

以下の例は、"MDN" という語を、Mozilla Developer Network へのハイパーテキストリンクとして表示します。


```js
const hotText = "MDN";
const url = "https://developer.mozilla.org/";

console.log(`クリックで ${hotText.link(url)} へ戻ります。`);
// クリックで <a href="https://developer.mozilla.org/">MDN</a> へ戻ります。
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.link |

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

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

関連情報
----

* `String.prototype.link` のポリフィル (`core-js`)
* `String.prototype.anchor()`
* `document.links`