String.prototype.toString()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
toString() 㯠String å¤ã®ã¡ã½ããã§ãæå®ããããªãã¸ã§ã¯ãã表ãæååãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const stringObj = new String("foo");
console.log(stringObj);
// äºæ³ãããçµæ: String { "foo" }
console.log(stringObj.toString());
// äºæ³ãããçµæ: "foo"
æ§æ
toString()
弿°
ãªãã
è¿å¤
å¼ã³åºãããªãã¸ã§ã¯ãã表ãæååã§ãã
詳細
ãã® String ãªãã¸ã§ã¯ãã¯ãObject ã® toString ã¡ã½ããã䏿¸ããã¾ããã¤ã¾ããObject.prototype.toString() ãç¶æ¿ãã¾ãããString ãªãã¸ã§ã¯ãã® toString ã¡ã½ããã¯ããã®ãªãã¸ã§ã¯ãã表ãæååãè¿ãã¾ãï¼String.prototype.valueOf() ã¨åçã§ãï¼ã
toString() ã¡ã½ãã㯠this å¤ã String ããªããã£ãã¾ãã¯ã©ããã¼ãªãã¸ã§ã¯ãã§ãããã¨ãè¦æ±ãã¾ããä»ã® this ã®å¤ã«å¯¾ãã¦ã¯ãæååå¤ã«å¤æãããã¨ããã« TypeError ãçºçãã¾ãã
String ã«ã¯ [Symbol.toPrimitive]() ã¡ã½ããããªããããJavaScript 㯠toString() ã¡ã½ããããæååãæ±ããããã³ã³ããã¹ããä¾ãã°ãã³ãã¬ã¼ããªãã©ã«ã§ String ãªãã¸ã§ã¯ãã使ç¨ãããã¨ãèªåçã«å¼ã³åºãã¾ããããããæååããªããã£ãå¤ã¯æååã«å¤æããããã« toString() ãå¼ã³åºãã¾ãããæ¢ã«æååãªã®ã§ã夿ã宿½ãããªãããã§ãã
String.prototype.toString = () => "Overridden";
console.log(`${"foo"}`); // "foo"
console.log(`${new String("foo")}`); // "Overridden"
ä¾
>toString() ã¡ã½ããã使ã
以ä¸ã®ä¾ã¯ãString ãªãã¸ã§ã¯ãã表ãæååã®å¤ã表示ãã¾ãã
const x = new String("Hello world");
console.log(x.toString()); // "Hello world"
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.tostring> |