toString【文字列変換】
toLocaleString【文字列変換 (ロケール)】
valueOf【プリミティブ値 変換】

Object.prototype.toString【文字列変換】

メモ

概要

関連

外部リンク

構文

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【文字列変換 (ロケール)】

メモ

概要

関連

外部リンク

構文

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【プリミティブ値 変換】

メモ

概要

  • プリミティブ値に変換
    • 派生オブジェクトの上書き用
    • 通常は自動的に呼び出し

関連

外部リンク

構文

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