Number.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() 㯠Number å¤ã®ã¡ã½ããã§ããã®æ°å¤ã表ç¾ããæååãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
function hexColor(c) {
if (c < 256) {
return Math.abs(c).toString(16);
}
return 0;
}
console.log(hexColor(233));
// äºæ³ãããçµæ: "e9"
console.log(hexColor("11"));
// äºæ³ãããçµæ: "b"
æ§æ
toString()
toString(radix)
弿°
radixçç¥å¯-
æ°å¤ã表ç¾ããããã«ä½¿ãããåºæ°ãæå®ããã
2ãã36ã¾ã§ã®æ´æ°ã§ããæ¢å®å¤ã¯ 10 ã§ãã
è¿å¤
æå®ãããæ°å¤ã表ç¾ããæååã§ããåºæ°ã 10 ã§ãï¼ç¬¦å·ãç¡è¦ããï¼æ°å¤ã®è¦æ¨¡ã 1021 以ä¸ã¾ã㯠10-6 以ä¸ã®å ´åã«ã¯ãç§å¦è¨æ°æ³ã使ç¨ããã¾ãã
ä¾å¤
RangeError-
radixã 2 æªæºãã¾ã㯠36 ãè¶ ããå ´åã«çºçãã¾ãã TypeError-
Numberã§ã¯ãªããªãã¸ã§ã¯ãã«å¯¾ãã¦ãã®ã¡ã½ãããå¼ã³åºãããå ´åã«çºçãã¾ãã
解説
Number ãªãã¸ã§ã¯ã㯠Object ã® toString() ã¡ã½ããã䏿¸ããã¾ããã¤ã¾ãã Object.prototype.toString() ãç¶æ¿ãã¦ãã¾ãããNumber ã®å¤ã§ã¯ãtoString ã¡ã½ããã¯æå®ãããåºæ°ã§ãªãã¸ã§ã¯ãã表ããæååãè¿ãã¾ãã
10 ãã大ããåºæ°ã§ã¯ã 9 ãã大ããæ°ãã¢ã«ãã¡ãããã®æåã§ç¤ºãã¾ããä¾ãã°ã16 é²è¡¨è¨ï¼åºæ° 16ï¼ã§ã¯ãa ãã f ã¾ã§ã使ããã¾ãã
numObj ãè² ã®å ´åã符å·ã¯ä¿åããã¾ããããã¯åºæ°ã 2 ã®å ´åãåæ§ã§ããè¿ãããæååã¯ã- è¨å·ã§å§ã¾ãæ°å¤ã®æ£ã® 2 鲿°è¡¨ç¾ã§ãããæ°å¤ã® 2 ã®è£æ°ã§ã¯ããã¾ããã
0 㨠-0 ã¯ã©ã¡ããæåå表ç¾ã "0" ã¨ãªãã¾ããInfinity 㯠"Infinity" ãè¿ãã NaN 㯠"NaN" ãè¿ãã¾ãã
æ°å¤ãæ´æ°ã§ãªãå ´åãå°æ°ç¹ . ãç¨ãã¦å°æ°ç¹ä»¥ä¸ã®ä½ç½®ãåºåãã¾ããç§å¦çè¨æ°æ³ã¯ãåºæ°ã10ã§ãæ°ã®å¤§ããï¼ç¬¦å·ã¯ç¡è¦ï¼ã 1021 以ä¸ã10-6 以ä¸ã®å ´åã«ä½¿ç¨ãã¾ãããã®å ´åãè¿ãæååã¯å¸¸ã«ææ°ã®ç¬¦å·ãæç¤ºçã«æå®ãã¾ãã
console.log((10 ** 21.5).toString()); // "3.1622776601683794e+21"
console.log((10 ** 21.5).toString(8)); // "526665530627250154000000"
æµ®åå°æ°ç¹æ°ã®åºæ¬çãªè¡¨ç¾ã¯ã2 鲿³ã®ç§å¦è¨æ³ã§ãï¼æ°å¤ã¨ã³ã³ã¼ããåç
§ï¼ãããããtoString() ã¡ã½ããã¯ãæ°å¤ã®å¤ã®ãã®æãæ£ç¢ºãªè¡¨ç¾ãç´æ¥ä½¿ç¨ãã¾ãããããããã¢ã«ã´ãªãºã ã¯ã飿¥ããæ°å¤ã®å¤ããåºåãåºå¥ããããã«å¿
è¦ãªæå°ã®æå¹æ°åã使ç¨ãã¾ããä¾ãã°ãæ°å¤ã大ããå ´åãåãæµ®åå°æ°ç¹æ°ã«å¯¾ãã¦çä¾¡ãªæåå表ç¾ã夿°åå¨ãããã¨ã«ãªããtoString() ã¯å³å´ã«æãå¤ãã® 0 ããããã®ï¼ä»»æã®åºæ°ã«å¯¾ãã¦ï¼ã鏿ãã¾ãã
console.log((1000000000000000128).toString()); // "1000000000000000100"
console.log(1000000000000000100 === 1000000000000000128); // true
䏿¹ãNumber.prototype.toFixed() ããã³ Number.prototype.toPrecision() ã使ç¨ããã¨ã精度ãæå®ã§ãã toString() ãããæ£ç¢ºãªçµæãå¾ããã¨ãã§ãã¾ãã
ãã® toString() ã¡ã½ããã¯ãthis å¤ãæ°å¤ããªããã£ãã¾ã㯠Number ã©ããã¼ãªãã¸ã§ã¯ãã§ããå¿
è¦ãããã¾ããä»ã® this å¤ã«å¯¾ãã¦ã¯ãæ°å¤ã«å¤æãããã¨ããã« TypeError ãçºçããã¾ãã
Number ã«ã¯ [Symbol.toPrimitive]() ã¡ã½ããããªãã®ã§ã Number ãªãã¸ã§ã¯ã ããã³ãã¬ã¼ããªãã©ã« ãªã©ã®ããã«æååãæå¾
ããã³ã³ããã¹ãã§ç¨ããããã¨ãã JavaScript 㯠toString() ã¡ã½ãããèªåçã«å¼ã³åºãã¾ããããããæ°å¤ããªããã£ã㯠toString() ã¡ã½ãããåç
§ãã¦æååã¸å¤æããã®ã§ã¯ãªããåæã® toString() å®è£
ã¨åãã¢ã«ã´ãªãºã ã使ç¨ãã¦ç´æ¥å¤æãããã
Number.prototype.toString = () => "Overridden";
console.log(`${1}`); // "1"
console.log(`${new Number(1)}`); // "Overridden"
ä¾
>toString ã®ä½¿ç¨
const count = 10;
console.log(count.toString()); // "10"
console.log((17).toString()); // "17"
console.log((17.2).toString()); // "17.2"
const x = 6;
console.log(x.toString(2)); // "110"
console.log((254).toString(16)); // "fe"
console.log((-10).toString(2)); // "-1010"
console.log((-0xff).toString(2)); // "-11111111"
æ°å¤æååã®åºæ°å¤æ
10 鲿°ã§ãªãåºæ°ã®æ°å¤ã表ãæååãããå ´åãparseInt() 㨠toString() ã使ç¨ãã¦å¥ã®åºæ°ã«å¤æãããã¨ãå¯è½ã§ãã
const hex = "CAFEBABE";
const bin = parseInt(hex, 16).toString(2); // "11001010111111101011101010111110"
精度ã®ä½ä¸ã«æ³¨æãã¦ãã ãããå
ã¨ãªãæ°å¤æååã大ããããï¼ä¾ãã° Number.MAX_SAFE_INTEGER ãã大ããï¼å ´åã代ããã« BigInt ã使ç¨ãã¦ãã ããããã ããBigInt ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãæ°å¤ãªãã©ã«ã表ãæååï¼0b, 0o, 0x ããå§ã¾ãæååï¼ã«ãã対å¿ãã¦ãã¾ãããå
ã®åºæ°ã 2 鲿°ã8 鲿°ã10 鲿°ã16 鲿°ã®ãããã§ããªãå ´åã¯ãåºæ°å¤æãæã§æ¸ãããã©ã¤ãã©ãªã¼ã使ç¨ããå¿
è¦ãããããããã¾ããã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.prototype.tostring> |