é¤ç®æ¼ç®å (/)
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
é¤ç®æ¼ç®å (/) ã¯ãå·¦ã®ãªãã©ã³ããè¢«é¤æ°ã¨ããå³ã®ãªãã©ã³ãã餿°ã¨ãããªãã©ã³ãå士ã®é¤ç®çµæãçæãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(12 / 2);
// äºæ³ãããçµæ: 6
console.log(3 / 2);
// äºæ³ãããçµæ: 1.5
console.log(6 / "3");
// äºæ³ãããçµæ: 2
console.log(2 / 0);
// äºæ³ãããçµæ: Infinity
æ§æ
x / y
解説
/ æ¼ç®åã¯ãæ°å¤ã¨é·æ´æ°ã® 2 種é¡ã®ãªãã©ã³ãã«å¯¾ãã¦ãªã¼ãã¼ãã¼ãããã¦ãã¾ããã¾ã両ãªãã©ã³ããæ°å¤åã«å¤æãããããã®åãæ¤æ»ãã¾ãã両ãªãã©ã³ããé·æ´æ°ã«ãªã£ãå ´åãé·æ´æ°ã®é¤ç®ãå®è¡ãã¾ããããã§ãªãå ´åã¯æ°å¤ã®é¤ç®ãå®è¡ãã¾ãã䏿¹ã®ãªãã©ã³ããé·æ´æ°ã«ãªãããã䏿¹ãæ°å¤ã«ãªã£ãå ´åã¯ãTypeError ãçºçãã¾ãã
é·æ´æ°ã®é¤ç®ã§ã¯ãçµæã¯ä¸¡ãªãã©ã³ãã®åã 0 æ¹åã«åãæ¨ã¦ãå¤ã¨ãªããä½ãã¯ç ´æ£ããã¾ãã餿° y ã 0n ã®å ´åãRangeError ãçºçãã¾ããããã¯æ°å¤é¤ç®ã§ 0 ãå²ã㨠Infinity ã¾ã㯠-Infinity ãè¿ãã®ã«å¯¾ããé·æ´æ°ã«ã¯ç¡éå¤§ã®æ¦å¿µãåå¨ããªãããã§ãã
ä¾
>åºæ¬çãªé¤ç®
1 / 2; // 0.5
Math.floor(3 / 2); // 1
1.0 / 2.0; // 0.5
2 / 0; // Infinity
2.0 / 0.0; // Infinity, because 0.0 === 0
2.0 / -0.0; // -Infinity
é·æ´æ°ä»¥å¤ã®å¤ã¯æ°å¤ã«å¤æããã¾ãã
5 / "2"; // 2.5
5 / "foo"; // NaN
é·æ´æ°ã使ç¨ããé¤ç®
1n / 2n; // 0n
5n / 3n; // 1n
-1n / 3n; // 0n
1n / -3n; // 0n
2n / 0n; // RangeError: BigInt division by zero
é¤ç®ã§é·æ´æ°ã¨æ°å¤ã®ãªãã©ã³ããæ··å¨ããããã¨ã¯ã§ãã¾ããã
2n / 2; // TypeError: Cannot mix BigInt and other types, use explicit conversions
2 / 2n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
é·æ´æ°ã¨é·æ´æ°ä»¥å¤ã§é¤ç®ãè¡ãã«ã¯ãã©ã¡ããã®ãªãã©ã³ãã夿ãã¦ãã ããã
2n / BigInt(2); // 1n
Number(2n) / 2; // 1
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-multiplicative-operators > |