åé ãã©ã¹æ¼ç®å (+)
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
åé
ãã©ã¹æ¼ç®å (+) ã¯ããªãã©ã³ãã®åã«ç½®ããããã®ãªãã©ã³ããè©ä¾¡ãããããæ°å¤ä»¥å¤ã®å ´åã¯æ°å¤ã¸å¤æãããã¨ãã¾ãã
試ãã¦ã¿ã¾ããã
const x = 1;
const y = -1;
console.log(+x);
// äºæ³ãããçµæ: 1
console.log(+y);
// äºæ³ãããçµæ: -1
console.log(+"");
// äºæ³ãããçµæ: 0
console.log(+true);
// äºæ³ãããçµæ: 1
console.log(+false);
// äºæ³ãããçµæ: 0
console.log(+"hello");
// äºæ³ãããçµæ: NaN
æ§æ
+x
解説
åé
ãã¤ãã¹ (-) ãéæ°å¤ãæ°å¤ã«å¤æã§ãã¾ãããåé
ãã©ã¹ã¯æ°å¤ã«å¯¾ãã¦ä»ã®æ¼ç®ãè¡ããªããããéæ°å¤ãæ°å¤ã«å¤æããæãé«éã§å¥½ã¾ããæ¹æ³ã§ãã
åé
ãã©ã¹æ¼ç®åã¯ãæ°å¤ãæå¾
ããã»ã¨ãã©ã®çµã¿è¾¼ã¿ã¡ã½ããã§ä½¿ç¨ãããéå¸¸ã®æ°å¤ã®å夿ã¨å
¨ãåãæ®µéãè¸ã¿ã¾ããæ´æ°ãæµ®åå°æ°ç¹ã®æåå表ç¾ãããã³éæååå¤ã§ãã trueãfalseãnull ã夿ãããã¨ãã§ãã¾ãã 10 鲿°ããã³ 16 鲿°ï¼0xæ¥é è¾ä»ãï¼å½¢å¼ã®æ´æ°ã«å¯¾å¿ãã¦ãã¾ããè² ã®æ°å¤ã対å¿ãã¦ãã¾ãï¼ãã ã 16 鲿°ã¯é¤ãï¼ãç¹å®ã®å¤ãè§£éã§ããªãå ´åãNaN ã¨è©ä¾¡ããã¾ããæ°å¤ã¨é·æ´æ°ã®ä¸¡æ¹ã§åä½ããä»ã®ç®è¡æ¼ç®åã¨ã¯ç°ãªããé·æ´æ°å¤ã«å¯¾ã㦠+ æ¼ç®åã使ç¨ãã㨠TypeError ãçºçãã¾ãã
ä¾
>æ°å¤ã§ã®ä½¿ãæ¹
const x = 1;
const y = -1;
console.log(+x);
// 1
console.log(+y);
// -1
æ°å¤ä»¥å¤ã§ã®ä½¿ãæ¹
+true // 1
+false // 0
+null // 0
+[] // 0
+function (val) { return val; } // NaN
+1n // TypeError: Cannot convert BigInt value to number ãçºç
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-unary-plus-operator > |