ææ°ã® JavaScript ã§ã¯ãï¼ã¤ã®æ°å¤åãããã¾ã:
-
JavaScript ã§ã®éå¸¸ã®æ°å¤ã¯ âå精度â ã¨ãã¦ç¥ããã64ããããã©ã¼ãããIEEE-754 ã§æ ¼ç´ããã¾ããã»ã¨ãã©ã®å ´åã§ä½¿ç¨ããæ°å¤ã¯ãã¡ãã§ãããæ¬ãã£ãã¿ã¼ã§ããã¡ãã«ã¤ãã¦èª¬æãã¾ãã
-
BigInt ã¯ä»»æã®é·ãã®æ´æ°ã表ç¾ããããã®ãã®ã§ããéå¸¸ã®æ°å¤ã§ã¯
253ãè¶ ãããã¨ãã-253ãããå°ããå¤ãæ±ããã¨ãã§ããªããããå ´åã«ãã£ã¦å¿ è¦ã«ãªãã¾ããBigInt ã¯éãããç¹å¥ãªé åã§ä½¿ç¨ããã¾ããBigInt 㯠BigInt ã§åãä¸ãã¾ãã
ãããã£ã¦ããã®ãã£ãã¿ã¼ã§ã¯ãéå¸¸ã®æ°å¤ã«ã¤ãã¦èª¬æãã¾ããã§ã¯ãç¥èãåºãã¦ããã¾ãããã
æ°å¤ãæ¸ãå¤ãã®æ¹æ³
10åãæ¸ããã¨ãæ³åãã¦ãã ãããæç½ãªæ¹æ³ã¯æ¬¡ã®éãã§ã:
let billion = 1000000000;
åºåãã¨ãã¦ã¢ã³ãã¼ã¹ã³ã¢ _ ã使ç¨ãããã¨ãå¯è½ã§ã:
let billion = 1_000_000_000;
ããã§ãã¢ã³ãã¼ã¹ã³ã¢ _ 㯠âç³è¡£æ§æâ ã®å½¹å²ãã¯ãããæ°å¤ãããèªã¿ããããã¾ããJavaScriptã¨ã³ã¸ã³ã¯åã«æ°åã®éã«ãã _ ãç¡è¦ããã®ã§ãä¸ã® 10åã¨ã¾ã£ããåãã§ãã
ãã ããå®éã«ã¯ééãããããããé常ã¯ä½åº¦ãã¼ããæ¸ãã®ãé¿ãã¾ããã¾ãæã
ã¯æ ãè
ã§ãã10åã "1bn" ã¨ãããã73åã "7.3bn" ã¨æ¸ããããã¾ãã大ããªæ°å¤ã表ç¾ããå ´åã«ã¯å¤§æµãããå½ã¦ã¯ã¾ãã¾ãã
JavaScriptã§ã¯ãæ°å¤ã«æå "e" ã追å ããã¼ãã®æ°ãæå®ãããã¨ã§æ°å¤ãçããã¾ãã:
let billion = 1e9; // 10 å, æåéã: 1 㨠9 åã®ã¼ã
alert( 7.3e9 ); // 73 å (7,300,000,000)
ã¤ã¾ãã"e" 㯠1 ã¨ä¸ããããã¼ãã®æ°ãããåããã¾ãã
1e3 = 1 * 1000
1.23e6 = 1.23 * 1000000
ä»åº¦ã¯é常ã«å°ããæ°å¤ãæ¸ãã¦ã¿ã¾ãããã1ãã¤ã¯ãç§(100ä¸åã®1ç§):
let ms = 0.000001;
å
ç¨æ¸ããããã«ã"e" ãå½¹ç«ã¡ã¾ããæç¤ºçã«ã¼ããæ¸ãã®ãé¿ãããå ´åããã®ããã«æ¸ããã¨ãã§ãã¾ã:
let ms = 1e-6; // 1 ããå·¦ã«ã¼ãã6ã¤
0.000001 ã®ä¸ã®ã¼ãã®æ°ã¯6ã¤ã§ãããªã®ã§ 1e-6 ã«ãªãã¾ãã
ã¤ã¾ãã"e" ã®å¾ã®è² å¤ã¯ 1 ã¨ä¸ããããã¼ãã®æ°ã§æ°å¤ãå²ã£ããã®ã«ãªãã¾ãã
// -3 divides by 1 with 3 zeroes
1e-3 = 1 / 1000 (=0.001)
// -6 divides by 1 with 6 zeroes
1.23e-6 = 1.23 / 1000000 (=0.00000123)
16鲿°ã2鲿°ã8鲿°(Hex, binary and octal numbers)
16鲿° ã®æ°å¤ã¯è²ãã¨ã³ã³ã¼ãæåããã®ä»å¤ãã®ãã®ã表ç¾ããæåã¨ãã¦JavaScriptã§åºã使ããã¦ãã¾ãããã¡ãããããããçãæ¸ãæ¹æ³ãããã¾ã: 0x ã¨ããã«ç¶ãã¦æ°å¤ãæ¸ãã¾ãã
ä¾ãã°:
alert( 0xff ); // 255
alert( 0xFF ); // 255 (åãã§ããæåã®å¤§å°ã¯é¢ä¿ããã¾ãã)
2鲿°ã¨8鲿°ã¯ãã¾ã使ããã¾ãããã0b, 0o ã®ãã¬ãã£ãã¯ã¹ã§ãµãã¼ãããã¦ãã¾ã:
let a = 0b11111111; // 255 ã®2鲿°è¡¨è¨
let b = 0o377; // 255 ã®8鲿°è¡¨è¨
alert( a == b ); // true, 両æ¹ã¨ãåãæ°å¤(255)
ãã®ãããªãµãã¼ããæã¤æ°åä½ç³»ã¯3ã¤ããããã¾ãããä»ã®æ°å¤ä½ç³»ã§ã¯ãparseInt 颿°ã使ãå¿
è¦ãããã¾ã(ãã®ãã£ãã¿ã¼ã§å¾ã»ã©å¦ã³ã¾ã)ã
toString(base)
ã¡ã½ãã num.toString(base) ã¯ä¸ãããã base ã®è¨æ°æ³ã§ num ã®æåå表ç¾ãè¿ãã¾ãã
ä¾:
let num = 255;
alert( num.toString(16) ); // ff
alert( num.toString(2) ); // 11111111
base 㯠2 ãã 36 ã¾ã§ã®å¤ãåãã¾ããããã©ã«ã㯠10 ã§ãã
ä¸è¬çãªã¦ã¼ã¹ã±ã¼ã¹ã¯æ¬¡ã®éãã§ã:
-
base=16 㯠16鲿°ã®è²ãæåã¨ã³ã³ã¼ããªã©ã«å©ç¨ãããæ°åã¯
0..9ã¾ãã¯A..Fã«ãªãã¾ãã -
base=2 ã¯ä¸»ã«ãããåä½ã®æä½ããããã°ããããã®ãã®ã§ããæ°åã¯
0ã1ã§ãã -
base=36 ã¯æå¤§å¤ã§ããæ°åã¯
0..9ã¾ãã¯A..Zã§ããå ¨ã¦ã®ã¢ã«ãã¡ããããæ°å¤ã表ç¾ããããã«ä½¿ããã¾ãã36ãå½¹ç«ã¤ã±ã¼ã¹ã¯ãä¾ãã°URLãçãããããã«ãé·ãæ°å¤ã®èå¥åãä½ãçããã®ã«å¤ããå¿ è¦ãããå ´åã§ããåºæ°36ã使ããã¨ã§ã·ã³ãã«ã«è¡¨ç¾ã§ãã¾ããalert( 123456..toString(36) ); // 2n9c
123456..toString(36) ã®2ã¤ã®ãããã¯ã¿ã¤ããã¹ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ãããä¸ã®ä¾ã® toString ã®ããã«ãæ°å¤ã«å¯¾ãã¦ç´æ¥ã¡ã½ããå¼ã³åºãããããã¨ãããã®å¾ã«2ã¤ã®ããã .. ãç½®ãå¿
è¦ãããã¾ãã
ãã1ã¤ã®ããããç½®ããå ´å 123456.toString(36)ãã¨ã©ã¼ã«ãªãã§ãããããªããªãJavaScriptæ§æã¯æåã®ãããã®å¾ãå°æ°é¨åã¨èããããã§ããããã¦ããã1ã¤ããããç½®ãã¨ãJavaScriptã¯å°æ°é¨åã空ã§ãããã¨ãç¥ããã¡ã½ããã¨å¤æãã¾ãã
ã¾ãããã®ããã«æ¸ããã¨ãã§ãã¾ã (123456).toString(36).
丸ã
æ°å¤å¦çã§æã使ãæä½ã®1ã¤ã丸ãã§ãã
丸ãã«ã¯ããã¤ãã®çµã¿è¾¼ã¿ã®é¢æ°ãããã¾ã:
Math.floor- åãæ¨ã¦:
3.1ã¯3ã«ãªã,-1.1ã¯-2ã«ãªãã¾ãã Math.ceil- åãä¸ã:
3.1ã¯4ã«ãªã,-1.1ã¯-1ã«ãªãã¾ãã Math.round- 忍äºå
¥ãã¦æãè¿ãæ´æ°ã«ãã:
3.1ã¯3ã«ãªã,3.6ã¯4ã«ãªãã¾ãã-1.1ã¯-1ã§ãã Math.trunc(Internet Explorer ã§ã¯æªãµãã¼ã)- 丸ãã使ããã«ãå°æ°ç¹ä»¥ä¸ãåé¤:
3.1ã¯3ã«ãªã,-1.1ã¯-1ã§ãã
ãããã®éãã®ãµããªããã¼ãã«ã«ãã¾ã:
Math.floor |
Math.ceil |
Math.round |
Math.trunc |
|
|---|---|---|---|---|
3.1 |
3 |
4 |
3 |
3 |
3.6 |
3 |
4 |
4 |
3 |
-1.1 |
-2 |
-1 |
-1 |
-1 |
-1.6 |
-2 |
-1 |
-2 |
-1 |
ãããã®é¢æ°ã¯ãæ°å¤ã®å°æ°ç¹ã®æ±ãæ¹ã®å
¨ã¦ã®å¯è½æ§ãã«ãã¼ãã¦ãã¾ããããããå°æ°ã®å¾ã®æ°å¤ã n-th(næ¡) ã«ä¸¸ãããã¨ãã¯ã©ãããã°ããã§ããããã
ä¾ãã°ã1.2345 ã¨ããæ°å¤ãããã1.23 ã®ã¿ãåãåºããããªã2æ¡ã«ä¸¸ãããå ´åã§ãã
ãããããããã«2ã¤ã®æ¹æ³ãããã¾ã:
-
ä¹é¤ç®
ä¾ãã°ãå°æ°ç¬¬2ä½ã§æ°å¤ã丸ããããã«ã æ°å¤ã
100ã§ä¹ç®ãã丸ã颿°ãå¼ã³åºããå¾ããããé¤ç®ãã¾ããlet num = 1.23456; alert( Math.floor(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23 -
ã¡ã½ãã toFixed(n) ã¯ç¹ã®å¾ã®æ°åã ânâ æ¡ã«ä¸¸ããçµæã®æåå表ç¾ãè¿ãã¾ãã
let num = 12.34; alert( num.toFixed(1) ); // "12.3"ããã¯ã
Math.roundã¨ä¼¼ãããã«ãæãè¿ãå¤ã«ä¸¸ãã¾ã:let num = 12.36; alert( num.toFixed(1) ); // "12.4"toFixedã®çµæã¯æååã§ãããã¨ã«æ³¨æãã¦ãã ãããããå°æ°é¨åãæå®æ¡ããçãå ´åãæ«å°¾ã«ã¼ããæ¿å ¥ããã¾ãã:let num = 12.34; alert( num.toFixed(5) ); // "12.34000", æ£ç¢ºã«5æ¡ã«ãªããã 0 ã追å ããã¾ãåé ãã©ã¹ãã¾ãã¯
Number()å¼ã³åºãã使ããã¨ã§ãæ°å¤ã«å¤æãããã¨ãã§ãã¾ã:+num.toFixed(5)
ç²¾å¯ã§ãªãè¨ç®
å é¨çã«ã¯ãæ°å¤ã¯ 64bit ãã©ã¼ãããIEEE-754ã§è¡¨ç¾ããããããæ£ç¢ºã« 64bit ã§æ°å¤ãæ ¼ç´ã§ãã¾ãã: ãã®ãã¡ 52bit ãæ°åã®æ ¼ç´ã®ããã«ä½¿ããã11bit ã å°æ°ç¹ã®ä½ç½®ã§(æ´æ°å¤ã®ã¨ãã¼ãã§ãã)ã 1bit ã¯ç¬¦å·ã§ãã
ãããæ°å¤ãé·ãããå ´åã64bitã®è¨æ¶åããªã¼ãã¼ããã¼ããç¡é大ã«ãªãå¯è½æ§ãããã¾ã:
alert( 1e500 ); // Infinity
å°ãã¯ã£ããããªãããããã¾ããããããèµ·ããã®ã¯ç²¾åº¦ã®ä½ä¸ã§ãã
ãã®(å½ã¨ãªã)ãã¹ããèãã¦ã¿ã¾ããã:
alert( 0.1 + 0.2 == 0.3 ); // false
ä¸è¨ã®éãããã 0.1 㨠0.2 ã®åè¨ã 0.3 ãã©ããããã§ãã¯ããå ´åãfalse ã«ãªãã¾ãã
å¥å¦ã§ã! 0.3 ã§ãªãã®ãªããä½ãªã®ã§ãããï¼
alert( 0.1 + 0.2 ); // 0.30000000000000004
ãªãã¨! ããã«ã¯èª¤ã£ãæ¯è¼ãããå¤ãã®é©ããããã¾ãããããe-ã·ã§ããã³ã°ã®ãµã¤ããä½ã£ã¦ããã訪åè
ã $0.10 㨠$0.20 ã®ååãã«ã¼ãã«å
¥ããã¨æ³åãã¦ãã ãããæ³¨æã®ç·é¡ã¯ $0.30000000000000004 ã«ãªãã¾ãã誰ããããã«é©ãã§ãããã
ãããããªããã®ãããªãã¨ãèµ·ããã®ã§ããããï¼
æ°å¤ã¯ãã¤ããªå½¢å¼ã§ã1ã¨0ã®ä¸¦ã³ã§ã¡ã¢ãªä¸ã«æ ¼ç´ããã¾ããããã10鲿°ã§ã·ã³ãã«ã«è¦ãã 0.1ã0.2 ã®ãããªå°æ°ã¯ããã¤ããªå½¢å¼ã§ã¯çµãããã¨ã®ãªãå°æ°ã§ãã
è¨ãæããã¨ã0.1 ã¨ã¯ä½ã§ãããï¼ãã㯠1 ã 10 ã§å²ã£ã 1/10 ã§ãã10鲿°ã§ã¯ããã®ãããªæ°å¤ã¯ç°¡åã«è¡¨ç¾ã§ãã¾ãã ãã㨠1/3 ãæ¯è¼ãã¦ã¿ã¦ãã ãããããã¯ç¡éã®å°æ° 0.33333(3) ã«ãªãã¾ãã
å¾ã£ã¦ã10 ã®ç´¯ä¹ã«ããé¤ç®ã¯ 10鲿°ã§ã¯ä¸æãåä½ãããã¨ãä¿è¨¼ããã¾ããã3 ã«ããé¤ç®ã¯ä¿è¨¼ããã¦ãã¾ãããåãçç±ã§ã2鲿°ã§ã¯ã2 ã®ç´¯ä¹ã«ããé¤ç®ã¯åä½ãããã¨ãä¿è¨¼ããã¦ãã¾ããã 1/10 ã¯ç¡éã®2鲿°ã®å°æ°ã«ãªãã¾ãã
2鲿°ã使ã£ã¦ã æ£ç¢ºãª 0.1 ã¾ã㯠æ£ç¢ºãª 0.2 ãæ ¼ç´ããæ¹æ³ã¯ããã¾ãããã¡ããã©ã10鲿°ã§ 1/3 ãå°æ°ã§æ£ç¢ºã«è¡¨ç¾ã§ããªãããã«ã
æ°å¤å½¢å¼ IEEE-754 ã¯ãå¯è½ãªéãè¿ãæ°å¤ã«ä¸¸ãã¦ããã解決ãã¾ãã ãããã®ä¸¸ãã«ã¼ã«ã§ã¯ãé常 âå°ããªç²¾åº¦æå¤±â ã¯è¦ããã¨ãã§ããªãã®ã§ãæ°å¤ã¯ 0.3 ã¨è¡¨ç¤ºããã¾ãã ããããæå¤±ã¯ä¾ç¶ã¨ãã¦åå¨ãããã¨ã«æ³¨æãã¦ãã ããã
ããã¯æ¬¡ã®ããã«ãã¦è¦ããã¨ãã§ãã¾ã:
alert( 0.1.toFixed(20) ); // 0.10000000000000000555
ããã¦ã2ã¤ã®æ°å¤ã®åè¨ãããã¨ãããããã® â精度æå¤±â ã¯å ç®ããã¾ãã
ããããããã§ã 0.1 + 0.2 ã¯æ£ç¢ºãª 0.3 ã§ã¯ããã¾ããã
åãåé¡ã¯å¤ãã®ä»ã®ããã°ã©ãã³ã°è¨èªã§åå¨ãã¾ãã
PHP, Java, C, Perl, Ruby ã¯å ¨ãåãçµæãè¿ãã¾ãããªããªããããã¯åãæ°å¤å½¢å¼ã«åºã¥ãã¦ããããã§ãã
ãã®åé¡ãåé¿ã§ããã®ã§ããããï¼ãã¡ãããå¹¾ã¤ãã®æ¹æ³ãããã¾ããæãä¿¡é ¼ã§ããæ¹æ³ã¯ãtoFixed(n) ã¡ã½ããã«ããçµæã丸ãããã¨ã§ã:
let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // 0.30
toFixed ã¯å¸¸ã«æååãè¿ããã¨ã«æ³¨æãã¦ãã ãããããã¯å°æ°ç¹ã®å¾2æ¡ã¨ãªããã¨ãä¿è¨¼ãã¾ããå®éãe-ã·ã§ããã³ã°ãæã£ã¦ã㦠$0.30 ã表示ããã¨ãã«ä¾¿å©ã§ãããã以å¤ã®ã±ã¼ã¹ã§ã¯ãæ°å¤ã«å¤æããããã«åé
ãã©ã¹ã使ããã¨ãã§ãã¾ãã
let sum = 0.1 + 0.2;
alert( +sum.toFixed(2) ); // 0.3
䏿çã«æ°å¤ã 100 (ã¾ãã¯ãã大ããªæ°å¤)ã§ä¹ç®ããæ´æ°ã«å¤æããè¨ç®ãè¡ã£ã¦ããé¤ç®ãããã¨ãã§ãã¾ãããã®å¾ãæ´æ°ã§è¨ç®ãããã¨ããã¨ãã¨ã©ã¼ã¯ããããæ¸å°ãã¾ãããä¾ç¶ã¨ãã¦é¤ç®ã§ã¯ã¾ã ç°å¸¸ã§ãã:
alert( (0.1 * 10 + 0.2 * 10) / 10 ); // 0.3
alert( (0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001
ãã®ãããä¹ç®/é¤ç®ã«ããã¢ããã¼ãã¯ã¨ã©ã¼ã¯æ¸ããã¾ãããå®å ¨ã«é¤å»ãããã¨ã¯ã§ãã¾ããã
ãããã·ã§ãããæ±ã£ã¦ããå ´åãæãææ¬çãªè§£æ±ºçã¯ã»ã³ãã§å ¨ã¦ã®ä¾¡æ ¼ãæ ¼ç´ããå ¨ãå°æ°ã使ããªããã¨ã§ãããããã30% ã®ãã£ã¹ã«ã¦ã³ããé©ç¨ããã¨ã©ããªãã§ããããï¼å®éã«ã¯ãå®å ¨ã«åé¿ãããã¨ã¯ã»ã¼ä¸å¯è½ãªã®ã§ãä¸è¨ã®è§£æ±ºæ³ã¯ãã®è½ã¨ãç©´ãåé¿ããã®ã«å½¹ç«ã¡ã¾ãã
ããã試ãã¦ã¿ã¦ãã ãã:
// Hello! èªå·±å¢å ããæ°å¤ã§ã!
alert( 9999999999999999 ); // shows 10000000000000000
ãããåãåé¡ã«ãããã®ã§ã: ç²¾åº¦ã®æå¤±ã§ããæ°å¤ã¯64bitã§ããããã®ãã¡ã®52bitãæ°å¤ãæ ¼ç´ããã®ã«ä½¿ãã¾ãããååã§ã¯ããã¾ãããå¾ã£ã¦ãæä¸ä½ã®æ°åã¯æ¶ãã¾ãã
JavaScriptã¯ãã®ãããªã¤ãã³ãã§ã¯ã¨ã©ã¼ãããªã¬ã¼ãã¾ãããæ°å¤ãç®çã®ãã©ã¼ãããã«åãããããæåãå°½ããã¾ããããã®ãã©ã¼ãããã¯æ®å¿µãªããåå大ãããã®ã§ã¯ããã¾ããã
æ°å¤ã®å
é¨è¡¨ç¾ã®ããä¸ã¤ã®é¢ç½ãçµæã¯ã2ã¤ã®ã¼ããããªãã¡ 0 㨠-0 ã®åå¨ã§ãã
è¨å·ã¯1ãããã§è¡¨ç¾ãããããããã¹ã¦ã®æ°åã¯ã0ãå«ãã¦æ£ã¾ãã¯è² ã«ãªãã¾ãã
ã»ã¨ãã©ã®å ´åãåºå¥ã¯æ°ã«ãªãã¾ããããªããªãæ¼ç®åã¯ããããåããã®ã¨ãã¦æ±ãããã§ãã
ãã¹ã: isFinite 㨠isNaN
2ã¤ã®ç¹å¥ãªæ°å¤ãè¦ãã¦ãã¾ããï¼
Infinite(ã¨-Infinite) ã¯ä½ããã大ãã(å°ãã)ç¹å¥ãªæ°å¤ã§ããNaNã¯ã¨ã©ã¼ã表ç¾ãã¾ãã
ããã㯠number åã«å±ãã¾ããã âé常ã®â æ°å¤ã§ã¯ãªãããããããããã§ãã¯ããããã®ç¹å¥ãªé¢æ°ãããã¾ã:
-
isNaN(value)ã¯ãã®å¼æ°ãæ°å¤ã«å¤æããNaNã§ãããããã¹ããã¾ã:alert( isNaN(NaN) ); // true alert( isNaN("str") ); // trueãããããã®é¢æ°ã¯å¿ è¦ãªã®ã§ããããï¼åã«æ¯è¼
=== NaNã¯ä½¿ããªãã®ã§ããããï¼çã㯠No ã§ããNaNã¯ããèªèº«ãå«ãã¦ä½ã¨ãçãããªããã¦ãã¼ã¯ã§ã:alert( NaN === NaN ); // false -
isFinite(value)ã¯å¼æ°ãæ°å¤ã«å¤æãããããNaN/Infinity/-Infinityã§ã¯ãªãéå¸¸ã®æ°å¤ã§ããã°ãtrueãè¿ãã¾ãã:alert( isFinite("15") ); // true alert( isFinite("str") ); // false, ç¹å¥ãªå¤: NaN ãªã®ã§ alert( isFinite(Infinity) ); // false, ç¹å¥ãªå¤: Infinity ãªã®ã§
æã
ãisFinite ã¯æååå¤ãéå¸¸ã®æ°å¤ãã©ããããã§ãã¯ããã®ã«ä½¿ããã¾ã:
let num = +prompt("Enter a number", '');
// Infinity ãå
¥åããªããã° true ã§ã -- Infinity ã¯æ°å¤ã§ã¯ããã¾ãã
alert( isFinite(num) );
空ãã¾ãã¯ã¹ãã¼ã¹ã®ã¿ã®æååã¯ãisFinite ãå«ããå
¨ã¦ã®æ°å¤é¢æ°ã§ 0 ã¨ãã¦æ±ãããç¹ã«æ³¨æãã¦ãã ããã
Object.is ã使ã£ãæ¯è¼å¤ã === ã®ããã«æ¯è¼ããç¹å¥ãªçµã¿è¾¼ã¿ã¡ã½ãã Object.is ãããã¾ããããã¯2ã¤ã®ç¹æ®ãªã±ã¼ã¹ã§ã¯ããä¿¡é ¼ã§ãã¾ã:
NaNã§ãã¾ãåä½ãã¾ã:Object.is(NaN, NaN) === trueãããã¯è¯ããã¨ã§ãã- å¤
0ã¨-0ã¯ç°ãªãã¾ã:Object.is(0, -0) === falseãéè¦ã§ã¯ããã¾ããããæè¡çã«ã¯ãããã¯ç°ãªãå¤ã§ãã
ä¸è¨ä»¥å¤ã®å
¨ã¦ã®ã±ã¼ã¹ã§ã¯ãObject.is(a, b) 㯠a === b ã¨åãã§ãã
ãã®æ¯è¼ã®æ¹æ³ã¯ JavaScriptã®ä»æ§ã§ãã°ãã°ä½¿ããã¾ããå
é¨ã®ã¢ã«ã´ãªãºã ã2ã¤ã®å¤ãæ£ç¢ºã«åãããæ¯è¼ããå¿
è¦ãããã¨ããObject.is (å
é¨çã«ã¯SameValueã¨å¼ã°ãã¾ã)ã使ãã¾ãã
parseInt 㨠parseFloat
ãã©ã¹ + ã¾ã㯠Number() ã使ã£ãæ°å¤å¤æã¯å³å¯ã§ããããå¤ãå³å¯ãªæ°å¤ã§ãªãå ´åã¯å¤±æãã¾ã:
alert( +"100px" ); // NaN
å¯ä¸ã®ä¾å¤ã¯æååã®æåãã¾ãã¯æå¾ã®ã¹ãã¼ã¹ã§ãããããã¯ç¡è¦ããã¾ãã
ããããå®éã«ã¯CSS ã§ "100px" ã "12pt" ã®ãããªåä½ãæã¤å¤ãæã¤ãã¨ãé »ç¹ã«ããã¾ããã¾ããå¤ãã®å½ã§ã¯ãé貨è¨å·ãéé¡ã®å¾ã«ããã®ã§ã"19â¬" ã¨è¨ã£ãå¤ãããããã®ä¸ããæ°å¤ãæ½åºãããã¨èãã¦ãã¾ãã
ãã®ããã« parseInt 㨠parseFloat ãããã¾ãã
ãããã¯ã§ããã ãæååããæ°å¤ã âèªã¿è¾¼ã¿â ã¾ããã¨ã©ã¼ãèµ·ããã¨ãåéãããæ°å¤ãè¿ããã¾ãã颿° parseInt ã¯æ´æ°ãè¿ãã䏿¹ã§ãparseFloat ã¯æµ®åå°æ°ãè¿ãã¾ã:
alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, æ´æ°é¨ã®ã¿è¿å´ããã¾ã
alert( parseFloat('12.3.4') ); // 12.3, 2ã¤ç®ã®ç¹ã§èªãã®ãããã¾ã
parseInt/parseFloat ã NaN ãè¿ãç¶æ³ãããã¾ããããã¯æ°å¤ãèªã¿è¾¼ããªãã£ãã¨ãã«çºçãã¾ã:
alert( parseInt('a123') ); // NaN, æåã®æåã§å¦çãæ¢ã¾ãã¾ã
parseInt(str, radix) ã®2ã¤ç®ã®å¼æ°parseInt() 颿°ã¯ä»»æã®2ã¤ç®ã®ãã©ã¡ã¼ã¿ãæã¡ã¾ããããã¯æ°å¤ã·ã¹ãã ã®åºæ°ãæå®ããã®ã§ãparseInt ãã¾ã16鲿°ã2鲿°ãªã©ã®æååããã¼ã¹ãããã¨ãåºæ¥ã¾ã:
alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, 0x ããªãã¦ãåä½ãã¾ã
alert( parseInt('2n9c', 36) ); // 123456
ä»ã®æ°å¦ç颿°
JavaScript ã¯æ°å¦é¢æ°ã¨å®æ°ã®å°ããªã©ã¤ãã©ãªãå«ãçµã¿è¾¼ã¿ã®Math ãªãã¸ã§ã¯ããæã£ã¦ãã¾ãã
ããã¤ãä¾ã§ã:
Math.random()-
0 ãã 1ã¾ã§ (1ã¯å«ã¿ã¾ãã)ã®ã©ã³ãã ãªæ°å¤ãè¿ãã¾ã
alert( Math.random() ); // 0.1234567894322 alert( Math.random() ); // 0.5435252343232 alert( Math.random() ); // ... (any random numbers) Math.max(a, b, c...)/Math.min(a, b, c...)-
ä»»æã®æ°ã®å¼æ°ããæå¤§/æå°ãè¿ãã¾ã
alert( Math.max(3, 5, -10, 0, 1) ); // 5 alert( Math.min(1, 2) ); // 1 Math.pow(n, power)-
nãä¸ããããæ°ã ãç´¯ä¹ãã¾ãalert( Math.pow(2, 10) ); // 2 in power 10 = 1024
docs for the Math ã«ããä¸è§æ³ãªã©ãMath ãªãã¸ã§ã¯ãã«ã¯ããå¤ãã®é¢æ°ã宿°ãããã¾ãã
ãµããª
大ããªæ°å¤ãæ¸ãå ´å:
- æ°å¤ã¸å ããã¼ãã®æ°ã¨ä¸ç·ã«
"e"ãä»ãå ãã¾ãããã®ããã«:123e6ã¯123㨠6ã¤ã®ã¼ãã§ãã "e"ã®å¾ã®è² ã®å¤ã¯ã1ã¨ä¸ããããã¼ãã®æ°ã§æ°å¤ãé¤ç®ãã¾ãã
ç°ãªãæ°å¤ä½ç³»ã®å ´å:
- 16鲿°(
0x)ã8鲿°(0o)ã2鲿°(0b) ã§ç´æ¥æ°å¤ãæ¸ããã¨ãåºæ¥ã¾ãã parseInt(str, base)ã¯2 ⤠base ⤠36ã®éã®ä»»æã®æ°å¤ã·ã¹ãã ã®æ´æ°ãè§£æãã¾ããnum.toString(base)ã¯æ°å¤ããä¸ããããbaseãåºæ°ã¨ããæ°å¤ã·ã¹ãã ã®æååã«å¤æãã¾ãã
12pt ã 100px ã®ãããªå¤ãæ°å¤ã«å¤æããå ´å:
- âã½ããâ 夿ã¨ãã¦
parseInt/parseFloatã使ãã¾ããããã¯æååããæ°å¤ãèªã¿è¾¼ã¿ãã¨ã©ã¼ãèµ·ããåã¾ã§ã«èªããå¤ãè¿ãã¾ãã
åæ°ã®å ´å:
Math.floor,Math.ceil,Math.trunc,Math.roundã¾ãã¯num.toFixed(precision)ã使ã£ã¦ä¸¸ãã¾ãã- åæ°ãæ±ãéã«ç²¾åº¦ã®ä½ä¸ããããã¨ãè¦ãã¦ããã¦ãã ããã
ããå¤ãã®ç®è¡é¢æ°:
- å¿ è¦ãªã¨ããMath ãè¦ã¦ãã ããããã®ã©ã¤ãã©ãªã¯ã¨ã¦ãå°ããã§ãããåºæ¬ã§å¿ è¦ãªãã®ã¯ã«ãã¼ãã¦ãã¾ãã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã