【JSリファレンス】Object.prototype.toString()

更新日:2024/06/14

Object.prototype.toString()は、Objectオブジェクト(Objectコンストラクターのインスタンス)プロトタイプチェーンに組み込まれるメソッドです。

このメソッドは、通常は"[object Object]"を返します。

 

■構文

Object.prototype.toString ( )
  1. なし
通常は、"[object Object]"

 

■使用例

const obj = {};
console.log( obj.toString() ); // [object Object]

 

■備考

オブジェクト内に定義してプロトタイプ上のtoString()を上書きすることで、文字列連結等で独自文字列を使用できるようになります。

const obj = {
  toString:()=>"Taro!"
};

console.log( "My Name is " +  obj ); // My Name is Taro!

 

■備考:[Symbol.toStringTag]の利用

オブジェクトに[Symbol.toStringTag]プロパティが存在し値が文字列の場合、"[object Object]"の後方の"Object"が、[Symbol.toStringTag]プロパティ値で置き換えられます。

const obj = {
  [Symbol.toStringTag]:"マイオブジェクト"
};
console.log( obj.toString() ); // [object マイオブジェクト]

ゲッターとして定義することで、内容を変化させることができます。

const obj = {
  value:100,
  get [Symbol.toStringTag](){
    return this.value.toString(); // 文字列化必須
  }
};
obj.value = 12345;
console.log( obj.toString() ); // [object 12345]

 

■this値の変更

call()等で配列以外の値をthis値とした場合、一部のオブジェクトは[Symbol.toStringTag]の有無にかかわらず、後方の"Object"が特定の文字列に置き換えられます。

this値文字列備考
undefined値"Undefined"
null値"Null"
Arrayオブジェクト"Array"
Argumentsオブジェクト"Arguments"
Functionオブジェクト"Function"
Errorオブジェクト"Error"TypeErrorなどを含む
Booleanオブジェクト"Boolean"
Numberオブジェクト"Number"
Stringオブジェクト"String"
Dateオブジェクト"Date"
RegExpオブジェクト"RegExp"

※this値が undefined および null 以外の時、対応するオブジェクトに変換されます。

const toString = Object.prototype.toString;
console.log( toString.call(null) );    // [object Null]
console.log( toString.call(100) );     // [object Number]
console.log( toString.call("abc") );   // [object String]
console.log( toString.call( ()=>{}) ); // [object Function]

 

関連ページ

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。