Date.prototype[@@toPrimitive]
[@@toPrimitive]()
メソッドは、 Date
オブジェクトをプリミティブ値に変換します。
試してみましょう
構文
Date()[Symbol.toPrimitive](hint)
返値
与えられた Date
オブジェクトのプリミティブ値です。引数に応じて、このメソッドは文字列と数値のどちらかを返します。
解説
Date
オブジェクトの [@@toPrimitive]()
メソッドは、プリミティブ値を返します。これは、数値型または文字列型です。
hint
が string
または default
の場合、[@@toPrimitive]()
は toString
メソッドを呼び出そうとします。 toString
メソッドが存在しなければ、 valueOf
メソッドを呼び出そうとします。 valueOf
メソッドも存在しなければ、 [@@toPrimitive]()
は TypeError
を発生させます。
hint
が number
の場合、 [@@toPrimitive]()
は初めに valueOf
メソッドを呼び出そうとします。これが失敗した場合は、 toString
メソッドを呼び出します。
JavaScript は、 [@@toPrimitive]()
メソッドを呼び出してオブジェクトをプリミティブ値に変換します。 [@@toPrimitive]()
メソッドを自分で呼び出す必要はほとんどありません。 JavaScript は、プリミティブ値が期待されるオブジェクトに遭遇した時、自動的にこれを呼び出します。
例
日付プリミティブの返却
const testDate = new Date(1590757517834);
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)"
testDate[Symbol.toPrimitive]('string');
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)" を返す
testDate[Symbol.toPrimitive]('number');
// "1590757517834" を返す
testDate[Symbol.toPrimitive]('default');
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)" を返す
仕様書
Specification |
---|
ECMAScript Language Specification # sec-date.prototype-@@toprimitive |
ブラウザーの互換性
BCD tables only load in the browser