ä¹ç®æ¼ç®å (*)
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
ä¹ç®æ¼ç®å (*) ã¯ããªãã©ã³ãã®ç©ãçæãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(3 * 4);
// äºæ³ãããçµæ: 12
console.log(-3 * 4);
// äºæ³ãããçµæ: -12
console.log("3" * 2);
// äºæ³ãããçµæ: 6
console.log("foo" * 2);
// äºæ³ãããçµæ: NaN
æ§æ
x * y
解説
* æ¼ç®åã¯ãæ°å¤ã¨é·æ´æ°ã® 2 種é¡ã®ãªãã©ã³ãã«å¯¾ãã¦ãªã¼ãã¼ãã¼ãããã¦ãã¾ããã¾ã両ãªãã©ã³ããæ°å¤åã«å¤æãããããã®åãæ¤æ»ãã¾ãã両ãªãã©ã³ããé·æ´æ°ã«ãªã£ãå ´åãé·æ´æ°ã®ä¹ç®ãå®è¡ãã¾ããããã§ãªãå ´åã¯æ°å¤ã®ä¹ç®ãå®è¡ãã¾ãã䏿¹ã®ãªãã©ã³ããé·æ´æ°ã«ãªãããã䏿¹ãæ°å¤ã«ãªã£ãå ´åã¯ãTypeError ãçºçãã¾ãã
ä¾
>æ°å¤ãç¨ããä¹ç®
2 * 2; // 4
-2 * 2; // -4
Infinity * 0; // NaN
Infinity * Infinity; // Infinity
éæ°ã¨ã®ä¹ç®
"foo" * 2; // NaN
"2" * 2; // 4
é·æ´æ°ãç¨ããä¹ç®
2n * 2n; // 4n
-2n * 2n; // -4n
ä¹ç®ã§é·æ´æ°ã¨æ°å¤ã®ãªãã©ã³ããæ··å¨ããããã¨ã¯ã§ãã¾ããã
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); // 4n
Number(2n) * 2; // 4
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-multiplicative-operators > |