Baseline Widely available
toString()
㯠Object
ã¤ã³ã¹ã¿ã³ã¹ã®ãªãã¸ã§ã¯ãã§ããã®ãªãã¸ã§ã¯ãã表ãæååãè¿ãã¾ãããã®ã¡ã½ããã¯ãç¬èªã®å夿ãã¸ãã¯ã®ããã«æ´¾çãªãã¸ã§ã¯ãããªã¼ãã¼ã©ã¤ãããããã®ãã®ã§ãã
function Dog(name) {
this.name = name;
}
const dog1 = new Dog("Gabby");
Dog.prototype.toString = function dogToString() {
return `${this.name}`;
};
console.log(dog1.toString());
// Expected output: "Gabby"
æ§æ 弿°
æ¢å®ã§ã¯ã toString()
ã¯å¼æ°ãåãã¾ããããã ããObject ãç¶æ¿ãããªãã¸ã§ã¯ãã¯ããã©ã¡ã¼ã¿ã¼ãåãç¬èªã®å®è£
ã§ toString() ããªã¼ãã¼ã©ã¤ãã§ãã¾ããä¾ãã°ã Number.prototype.toString()
ããã³ BigInt.prototype.toString()
ã¡ã½ããã¯ããªãã·ã§ã³ã§å¼æ° radix
ãåãã¾ãã
ãªãã¸ã§ã¯ãã表ãæååã§ãã
解説JavaScript 㯠toString
ã¡ã½ããããªãã¸ã§ã¯ããããªããã£ãå¤ã«å¤æããããã«å¼ã³åºãã¾ãã toString
ãå¼ã³åºãå¿
è¦ãããã®ã¯ç¨ã§ãã JavaScript ã¯ãããªããã£ãå¤ãæå¾
ããããªãã¸ã§ã¯ãã«ééããã¨ãèªåçã« toString
ã¡ã½ãããå¼ã³åºãã¾ãã
ãã®ã¡ã½ããã¯æåå夿ã«ãã£ã¦åªå
çã«å¼ã³åºããã¾ãããæ°å¤å¤æã¨ããªããã£ãå¤æã¯ valueOf()
ãåªå
çã«å¼ã³åºãã¾ãããã ããåºåºã® valueOf()
ã¡ã½ããã¯ãªãã¸ã§ã¯ããè¿ãã®ã§ããªãã¸ã§ã¯ãã valueOf()
ããªã¼ãã¼ã©ã¤ãããªãéããéå¸¸ã¯æå¾ã« toString()
ã¡ã½ãããå¼ã³åºããã¾ããä¾ãã°ã +[1]
㯠1
ãè¿ãã¾ããããã㯠toString()
ã¡ã½ããã "1"
ãè¿ãããããæ°å¤ã«å¤æãããããã§ãã
Object.prototype
ãç¶æ¿ãããã¹ã¦ã®ãªãã¸ã§ã¯ãï¼ null
ãããã¿ã¤ããªãã¸ã§ã¯ããé¤ããã¹ã¦ã®ãªãã¸ã§ã¯ãï¼ã¯ toString()
ã¡ã½ãããç¶æ¿ãã¾ããç¬èªãªãã¸ã§ã¯ãã使ããã¨ãã¯ãtoString()
ããªã¼ãã¼ã©ã¤ããã¦ç¬èªã¡ã½ãããå¼ã³åºããç¬èªãªãã¸ã§ã¯ããæååå¤ã«å¤æã§ããããã«ãã¾ããã¾ãã[Symbol.toPrimitive]()
ã¡ã½ããã追å ãããã¨ãã§ãã¾ãããã®ã¡ã½ããã§ã¯ã夿å¦çãããç´°ããå¶å¾¡ãããã¨ãã§ããã©ã®åã®å¤æã«ã¤ãã¦ã常㫠valueOf
ã¾ã㯠toString
ãããåªå
ããã¾ãã
åºåºã¨ãªã Object.prototype.toString()
ããªã¼ãã¼ã©ã¤ãããã¦ãããªãã¸ã§ã¯ãã§ä½¿ç¨ããï¼ã¾ã㯠null
ã undefined
ã«å¯¾ãã¦å¼ã³åºãï¼ã«ã¯ã Function.prototype.call()
ã¾ã㯠Function.prototype.apply()
ãå¼ã³åºãå¿
è¦ããããæåã®å¼æ°ï¼thisArg
ã¨å¼ã°ããï¼ã¨ãã¦æ¤æ»ããããªãã¸ã§ã¯ããæ¸¡ãã¾ãã
const arr = [1, 2, 3];
arr.toString(); // "1,2,3"
Object.prototype.toString.call(arr); // "[object Array]"
Object.prototype.toString()
ã¯ã "[object Type]"
ãè¿ãã Type
ã®ã¨ããããªãã¸ã§ã¯ãåã«ãªãã¾ãããªãã¸ã§ã¯ãã«å¤ãæååã§ãã Symbol.toStringTag
ããããã£ãããå ´åããã®å¤ã Type
ã¨ãã¦ä½¿ç¨ããã¾ãã Map
ããã³ Symbol
ãå«ãå¤ãã®çµã¿è¾¼ã¿ãªãã¸ã§ã¯ãã«ã¯ã Symbol.toStringTag
ãããã¾ãã ES6 以åã®ãªãã¸ã§ã¯ãã®ä¸ã«ã¯ Symbol.toStringTag
ãæããªããã®ãããã¾ãããããã§ãç¹å¥ãªã¿ã°ãæã£ã¦ãã¾ããããã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãï¼ã¿ã°ã¯ä¸è¨ã§æå®ãããååã¨åãã§ãï¼ã
Array
Function
ï¼typeof
ã "function"
ãè¿ããã®ãã¹ã¦ï¼Error
Boolean
Number
String
Date
RegExp
arguments
ãªãã¸ã§ã¯ã㯠"[object Arguments]"
ãè¿ãã¾ãããã以å¤ã®ãã®ã¯ãã¹ã¦ãã¦ã¼ã¶ã¼å®ç¾©ã¯ã©ã¹ãå«ã¿ãç¬èªã® Symbol.toStringTag
ããªãéãã "[object Object]"
ãè¿ãã¾ãã
Object.prototype.toString()
ã null
ããã³ undefined
ã«å¯¾ãã¦å¼ã³åºãã¨ããããã [object Null]
ããã³ [object Undefined]
ãè¿ãã¾ãã
æ¢å®ã® toString()
ã¡ã½ããã«ä»£ãã£ã¦å¼ã³åºããã颿°ãä½ããã¨ãã§ãã¾ãã toString()
ã¡ã½ããã¯æååãè¿ãå¿
è¦ãããã¾ãããªãã¸ã§ã¯ããè¿ãããã®ã¡ã½ãããå夿ã®éã«æé»çã«å¼ã³åºãããå ´åããã®çµæã¯ç¡è¦ããã代ããã«ç¸å¯¾ã¡ã½ãã valueOf()
ã®å¤ã使ããã¾ãããããã®ã¡ã½ããã®ã©ã¡ãããããªããã£ãå¤ãè¿ããªãå ´å㯠TypeError
ãçºçãã¾ãã
以ä¸ã®ã³ã¼ã㯠Dog
ã¯ã©ã¹ãå®ç¾©ãã¦ãã¾ãã
class Dog {
constructor(name, breed, color, sex) {
this.name = name;
this.breed = breed;
this.color = color;
this.sex = sex;
}
}
ãã®ã«ã¹ã¿ã ãªãã¸ã§ã¯ãä¸ã§ toString()
ã¡ã½ãããå¼ã³åºããå ´åãã¡ã½ãã㯠Object
ããç¶æ¿ãããæ¢å®å¤ãè¿ãã¾ãã
const theDog = new Dog("Gabby", "Lab", "chocolate", "female");
theDog.toString(); // "[object Object]"
`${theDog}`; // "[object Object]"
以ä¸ã®ã³ã¼ãã¯æ¢å®ã® toString()
ã¡ã½ããã䏿¸ããã¾ãããã®ã¡ã½ããã¯ãªãã¸ã§ã¯ãã® name
, breed
, color
, sex
ãæ ¼ç´ããæååãçæãã¾ãã
class Dog {
constructor(name, breed, color, sex) {
this.name = name;
this.breed = breed;
this.color = color;
this.sex = sex;
}
toString() {
return `Dog ${this.name} is a ${this.sex} ${this.color} ${this.breed}`;
}
}
ä¸è¨ã®ã³ã¼ãã®ä¸ã§ã Dog
ãæååã®æèã§ä½¿ç¨ããããã³ã«ã JavaScript ã¯èªåçã« toString()
颿°ãå¼ã³åºãã以ä¸ã®æååãè¿ãã¾ãã
const theDog = new Dog("Gabby", "Lab", "chocolate", "female");
`${theDog}`; // "Dog Gabby is a female chocolate Lab"
toString() ã使ç¨ãã¦ãªãã¸ã§ã¯ãã¯ã©ã¹ã®å¤å¥
toString()
ã¯ãã¹ã¦ã®ãªãã¸ã§ã¯ãã«å¯¾ãã(æ¢å®ã§ã¯) ãã®ã¯ã©ã¹ãå¾ãããã«ä½¿ç¨ãããã¨ãã§ãã¾ãã
const toString = Object.prototype.toString;
toString.call(new Date()); // [object Date]
toString.call(new String()); // [object String]
// Math ã«ã¯ Symbol.toStringTagãããã
toString.call(Math); // [object Math]
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
ãã®ãã㪠toString()
ã®ä½¿ç¨ã¯ä¿¡é ¼ã§ãã¾ããããªãã¸ã§ã¯ã㯠Object.prototype.toString()
ã®åä½ã Symbol.toStringTag
ããããã£ãå®ç¾©ãããã¨ã§å¤æ´ã§ããããã«ãã£ã¦æ¬¡ã®ããã«äºæ³å¤ã®åä½ã«ãªãã¾ãã
const myDate = new Date();
Object.prototype.toString.call(myDate); // [object Date]
myDate[Symbol.toStringTag] = "myDate";
Object.prototype.toString.call(myDate); // [object myDate]
Date.prototype[Symbol.toStringTag] = "prototype polluted";
Object.prototype.toString.call(new Date()); // [object prototype polluted]
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4