Object.prototype.toString()【文字列変換】メソッド

メモ

構文

  • 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]"

var 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]
var obj = { 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() {
  var ret = '[ x = ' + this.x + ', y = ' + this.y + ' ]';
  return ret;
}
console.log(obj.toString());              // 出力:[ x = 2, y = 3 ]

関連