.
-
' (double precision floating point number)' 64 IEEE-754 . .
-
BigInt .
253-253BigInt . BigInt , BigInt .
, .
10 . 10(one billion) .
let billion = 1000000000;
0 , . 0 . 10(billion) '1bn' , 73 '7.3bn' . .
'e' 0 .
let billion = 1e9; // 10, 1 9 0
alert( 7.3e9 ); // 73 (7,300,000,000)
, 'e' e e 10 .
1e3 === 1 * 1000
1.23e6 === 1.23 * 1000000
1( 1) .
let ms = 0.000001;
'e' . 0 .
let ms = 1e-6; // 1 6
0.000001 0 6 0.000001 1e-6 .
'e' , 10 .
// 10
1e-3 === 1 / 1000 // 0.001
// 10
1.23e-6 === 1.23 / 1000000 // 0.00000123
16, 2, 8
16 . 16 . 16 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, , a b
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 .
-
base=16 16 , .
09, 10AF. -
base=2 .
01. -
base=36
base,0..9A..Z. .36url . .alert( 123456..toString(36) ); // 2n9c
123456..toString(36) . toString .. .
123456.toString(36) , . .
(123456).toString(36) .
(rounding) .
.
Math.floor- ().
3.13,-1.1-2. Math.ceil- .
3.14,-1.1-1. Math.round- .
3.13,3.64,-1.1-1. Math.trunc(Internet Explorer )- .
3.13-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 ?
1.2345 1.23 .
.
-
,
10010010, .let num = 1.23456; alert( Math.floor(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23 -
ntoFixed(n) .let num = 12.34; alert( num.toFixed(1) ); // "12.3"toFixedMath.round.let num = 12.36; alert( num.toFixed(1) ); // "12.4"toFixed. 0 .let num = 12.34; alert( num.toFixed(5) ); // "12.34000", 5 0 .,
+num.toFixed(5)Number().
64 IEEE-754 64 . 64 52 , 11 ( 0), 1 .
64 Infinity .
alert( 1e500 ); // Infinity
, (loss of precision) .
.
alert( 0.1 + 0.2 == 0.3 ); // false
0.1 0.2 0.3 false .
! 0.3 ?
alert( 0.1 + 0.2 ); // 0.30000000000000004
. . $0.10 $0.20 . $0.30000000000000004 .
?
0 1 . 10 0.1, 0.2 .
0.1 1 10 1/10. 10 . 1/10 1/3 . 1/3 0.33333(3) .
10 10 3 10 . 2 2 1/10 2 .
10 1/3 , 2 0.1 0.2 .
IEEE-754 . ' .
.
alert( 0.1.toFixed(20) ); // 0.10000000000000000555
' .
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 . $0.30 . .
let sum = 0.1 + 0.2;
alert( +sum.toFixed(2) ); // 0.3
100( ) , 100 . . .
alert( (0.1 * 10 + 0.2 * 10) / 10 ); // 0.3
alert( (0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001
10 .
. , 30% . . ' .
.
// !
alert( 9999999999999999 ); // 10000000000000000 .
. 64 , 52 . (the least significant digit) .
. .
0 -0 0 .
0 , .
0 -0 0 .
isNaN isFinite
?
Infinity-InfinityNaN
, .
-
isNaN(value)NaNalert( isNaN(NaN) ); // true alert( isNaN("str") ); // true? "
=== NaN?" . '.NaNNaN.alert( NaN === NaN ); // false -
isFinite(value)NaN/Infinity/-Infinitytruealert( isFinite("15") ); // true alert( isFinite("str") ); // false, NaN . alert( isFinite(Infinity) ); // false, Infinity .
isFinite .
let num = +prompt(" .", '');
// Infinity, -Infinity false .
alert( isFinite(num) );
isFinite 0 .
Object.is 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, .
parseInt parseFloat NaN . .
alert( parseInt('a123') ); // NaN, a .
parseInt(str, radix) parseInt() . radix . parseInt 16 , 2 .
alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, 0x .
alert( parseInt('2n9c', 36) ); // 123456
Math .
.
Math.random()-
0 1 (1 ).
alert( Math.random() ); // 0.1234567894322 alert( Math.random() ); // 0.5435252343232 alert( Math.random() ); // ... ( ) 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)-
npower .alert( Math.pow(2, 10) ); // 2 10 = 1024
Math . MDN .
0 .
- 0
'e'.123e60 6 ,123000000. 'e', 10 .123e-60.000123.
.
- 16(
0x), 8(0o), 2(0b) . parseInt(str, base)strbase(,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 .