toString【文字列変換】
toLocaleString【文字列変換 (ロケール)】
valueOf【プリミティブ値 変換】
Object.prototype.toString【文字列変換】
メモ
概要
- 文字列に変換
- 書き換え可能 (prototype.toString を書き換え・[@@toStringTag]プロパティ の定義)
- 標準組み込みオブジェクトの判別に利用可能
- 詳細は、Object【オブジェクト】オブジェクトのメモ参照
関連
外部リンク
- ECMA-262 (英語)
Object.prototype.toString ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
Object.toString( )
変換文字列 (詳細は下記参照)
値 | 戻り値 (文字列) | 備考 |
---|---|---|
undefined | [object Undefined] | |
null | [object Null] | |
標準組み込みオブジェクト | [object Arguments] | String型等も全てオブジェクト |
[object Array] | ||
[object Boolean] | ||
[object Date] | ||
[object Error] | ||
[object Function] | ||
[object Number] | ||
[object Object] | ||
[object RegExp] | ||
[object String] | ||
[ @@toStringTag ] 【タグ】プロパティ を持つオブジェクト | [object %TypedArray%] | [object オブジェクト名] |
[object ArrayBuffer] | ||
[object DataView] | ||
[object GeneratorFunction] | ||
[object Generator] | ||
[object JSON] | ||
[object Map] | ||
[object Math] | ||
[object Promise] | ||
[object Set] | ||
[object Symbol] | ||
[object WeakMap] | ||
[object WeakSet] | ||
[ @@toStringTag ] 【タグ】プロパティ を定義 | [object 【プロパティ定義】] | 実装:[ Symbol.toStringTag ] |
その他 | [object Object] |
例
const toString = Object.prototype.toString;
console.log(toString.call(undefined));
// 出力:[object Undefined]
console.log(toString.call(null));
// 出力:[object Null]
console.log(toString.call(new String()));
// 出力:[object String]
console.log(toString.call(new Number()));
// 出力:[object Number]
console.log(toString.call(Math));
// 出力:[object Math]
let obj = { a:1, b:2, c:3 };
console.log(obj);
// 出力:Object { a: 1, b: 2, c: 3 }
console.log(obj.toString());
// 出力:[object Object]
obj[Symbol.toStringTag] = "MyObject";
// [@@toStringTag]
console.log(obj.toString());
// 出力:[object MyObject]
function Point(x, y) {
this.x = x;
this.y = y;
}
obj = new Point(2, 3);
console.log(obj.toString());
// 出力:[object Object]
// toString() 書き換え
Point.prototype.toString = function pointToString() {
const str = `Point(x = ${this.x}, y = ${this.y})`;
return str;
}
console.log(obj.toString());
// 出力:Point(x = 2, y = 3)
Object.prototype.toLocaleString【文字列変換 (ロケール)】
メモ
概要
- ロケール文字列に変換
- 派生オブジェクトの上書き用
- toString【文字列変換】を呼び出し
- 下記のオブジェクトが上書き
関連
外部リンク
- ECMA-262 (英語)
Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] ) ES2024 (15) ES2023 (14) ES2022 (13) - BCP 47 (英語)
BCP 47 Tags for Identifying Languages
構文
Object.toLocaleString( )
Object.toLocaleString ( [ reserved1 [ , reserved2 ]] )
ロケール文字列 (詳細は下記参照)
reserved1 予備1
reserved2 予備2
例
// Object【オブジェクト】
const obj = { x: 1, y: 2 };
console.log(obj.toLocaleString());
// 出力:[object Object]
console.log(obj.toString());
// 出力:[object Object]
// Date【日時】
const date = new Date(2001, (2 - 1), 3, 4, 5, 6);
console.log(date.toLocaleString('ja-JP'));
// 出力例:2001/2/3 4:05:06
console.log(date.toLocaleString('en-US'));
// 出力例:2/3/2001, 4:05:06 AM
console.log(date.toLocaleString('en-GB'));
// 出力例:03/02/2001, 04:05:06
// Number【数値】
const num = 1234567.89;
console.log(num.toLocaleString('ja'));
// 出力例:(3桁区切り:カンマ / 小数点:ドット)
// 1,234,567.89
console.log(num.toLocaleString('de'));
// 出力例:(3桁区切り:ドット / 小数点:カンマ)
// 1.234.567,89
// Array【配列】
const array = [1234567.89, new Date(2001, (2 - 1), 3, 4, 5, 6)];
console.log(array.toLocaleString('ja'));
// 出力例:1,234,567.89,2001/2/3 4:05:06
console.log(array.toLocaleString('en-US'));
// 出力例:1,234,567.89,2/3/2001, 4:05:06 AM
console.log(array.toLocaleString('en-GB'));
// 出力例:1,234,567.89,03/02/2001, 04:05:06
console.log(array.toLocaleString('de'));
// 出力例:1.234.567,89,3.2.2001, 04:05:06
// ~Array【型指定配列ビュー (%TypedArray%)】
const typedArray = new Int32Array([ 123456789, -123456789 ]);
console.log(typedArray.toLocaleString('ja'));
// 出力例:123,456,789,-123,456,789
console.log(typedArray.toLocaleString('de'));
// 出力例:123.456.789,-123.456.789
Object.prototype.valueOf【プリミティブ値 変換】
メモ
概要
- プリミティブ値に変換
- 派生オブジェクトの上書き用
- 通常は自動的に呼び出し
関連
外部リンク
- ECMA-262 (英語)
Object.prototype.valueOf ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
Object.valueOf( )
プリミティブ値 (実装依存)
例
let obj = new Object();
console.log(obj.valueOf());
// 出力:Object { }
console.log(obj);
// 出力:Object { }
obj = { x: 1, y: 2 };
console.log(obj.valueOf());
// 出力:Object { x: 1, y: 2 }
console.log(obj);
// 出力:Object { x: 1, y: 2 }
const num = 123456;
console.log(num.valueOf());
// 出力:123456
console.log(num);
// 出力:123456