W tym samouczku dowiesz się o liczbie JavaScript na przykładach.
W JavaScript liczby są prymitywnymi typami danych. Na przykład,
const a = 3; const b = 3.13;
W przeciwieństwie do niektórych innych języków programowania, nie musisz specjalnie deklarować wartości całkowitych lub zmiennoprzecinkowych przy użyciu int , float itp.
Możesz użyć notacji wykładniczej e, aby uwzględnić zbyt duże lub zbyt małe liczby. Na przykład,
const a1 = 5e9; console.log(a1); //5000000000 const a2 = 5e-5; console.log(a2); // 0.00005
Liczby można również oznaczać w notacji szesnastkowej. Na przykład,
const a = 0xff; console.log(a); // 255 const b = 0x00 ; console.log(b); // 0
+ Operator z liczbami
Kiedy +
jest używany z liczbami, służy do dodawania liczb. Na przykład,
const a = 4 + 9; console.log(a); // 13
Gdy +
jest używany z liczbami i łańcuchami, służy do ich łączenia. Na przykład,
const a = '4' + 9; console.log(a); // 49
Gdy ciąg liczbowy jest używany z innymi operacjami numerycznymi, ciąg liczbowy jest konwertowany na liczbę. Na przykład,
const a = '4' - 2; console.log(a); // 2 const a = '4' / 2; console.log(a); // 2 const a = '4' * 2; console.log(a); // 8
JavaScript NaN
W JavaScript NaN
(Not a Number) jest słowem kluczowym wskazującym, że wartość nie jest liczbą.
Wykonywanie operacji arytmetycznych (z wyjątkiem +
) na wartości liczbowej za pomocą łańcucha powoduje NaN
. Na przykład,
const a = 4 - 'hello'; console.log(a); // NaN
Funkcja wbudowana isNaN()
może służyć do sprawdzania, czy wartość jest liczbą. Na przykład,
const a = isNaN(9); console.log(a); // false const a = isNaN(4 - 'hello'); console.log(a); // true
Gdy typeof
operator jest używany jako NaN
wartość, daje wynik liczbowy. Na przykład,
const a = 4 - 'hello'; console.log(a); // NaN console.log(typeof a); // "number"
JavaScript Infinity
W JavaScript, gdy wykonywane są obliczenia, które przekraczają największą (lub najmniejszą) możliwą liczbę, zwracana jest wartość Infinity
(lub -Infinity
). Na przykład,
const a = 2 / 0; console.log(a); // Infinity const a = -2 / 0; console.log(a); // -Infinity
JavaScript BigInt
W JavaScript typ Number może reprezentować tylko liczby mniejsze niż (2 53 - 1) i większe niż - (2 53 - 1) . Jeśli jednak potrzebujesz użyć większej liczby, możesz użyć typu danych BigInt.
Liczba BigInt jest tworzona przez dołączenie n na końcu liczby całkowitej. Na przykład,
// BigInt value const value = 900719925124740998n; // Adding two big integers const value1 = value + 1n; console.log(value1); // returns "900719925124740999n"
Uwaga: BigInt został wprowadzony w nowszej wersji JavaScript i nie jest obsługiwany przez wiele przeglądarek. Odwiedź stronę wsparcia JavaScript BigInt, aby dowiedzieć się więcej.
Numery JavaScript są przechowywane w wersji 64-bitowej
W JavaScript liczby są przechowywane w 64-bitowym formacie IEEE-754, znanym również jako „liczby zmiennoprzecinkowe o podwójnej precyzji”.
Liczby są przechowywane w 64 bitach (liczba jest przechowywana w pozycjach od 0 do 51 bitów, wykładnik w pozycjach od 52 do 62 bitów, a znak w pozycji 63 bitowej).
Liczby | Wykładnik potęgowy | Znak |
---|---|---|
52 bity (0 - 51) | 11 bitów (52-62) | 1 bit (63) |
Problemy z precyzją
Operacje na liczbach zmiennoprzecinkowych dają nieoczekiwane rezultaty. Na przykład,
const a = 0.1 + 0.2; console.log(a); // 0.30000000000000004
Wynik powinien wynosić 0,3 zamiast 0,30000000000000004 . Ten błąd występuje, ponieważ w JavaScript liczby są przechowywane w postaci binarnej, aby wewnętrznie reprezentować cyfry dziesiętne. A liczb dziesiętnych nie można dokładnie przedstawić w postaci binarnej.
Aby rozwiązać powyższy problem, możesz zrobić coś takiego:
const a = (0.1 * 10 + 0.2 * 10) / 10; console.log(a); // 0.3
Możesz także skorzystać z toFixed()
metody.
const a = 0.1 + 0.2; console.log(a.toFixed(2)); // 0.30
toFixed(2)
zaokrągla liczbę dziesiętną do dwóch wartości dziesiętnych.
const a = 9999999999999999 console.log(a); // 10000000000000000
Uwaga : liczby całkowite mają dokładność do 15 cyfr.
Liczba obiektów
Możesz również tworzyć liczby za pomocą new
słowa kluczowego. Na przykład,
const a = 45; // creating a number object const b = new Number(45); console.log(a); // 45 console.log(b); // 45 console.log(typeof a); // "number" console.log(typeof b); // "object"
Uwaga : Zaleca się unikanie obiektów liczbowych. Używanie obiektów liczbowych spowalnia działanie programu.
Metody liczbowe JavaScript
Oto lista wbudowanych metod liczbowych w JavaScript.
metoda | Opis |
---|---|
isNaN () | określa, czy przekazana wartość to NaN |
isFinite () | określa, czy przekazana wartość jest liczbą skończoną |
isInteger () | określa, czy przekazana wartość jest liczbą całkowitą |
isSafeInteger () | określa, czy przekazana wartość jest bezpieczną liczbą całkowitą |
parseFloat (ciąg) | konwertuje liczbowy łańcuch zmiennoprzecinkowy na liczbę zmiennoprzecinkową |
parseInt (ciąg; (radix)) | konwertuje ciąg liczbowy na liczbę całkowitą |
toExponential (fractionDigits) | returns a string value for a number in exponential notation |
toFixed(digits) | returns a string value for a number in fixed-point notation |
toPrecision() | returns a string value for a number to a specified precision |
toString((radix)) | returns a string value in a specified radix(base) |
valueof() | returns the numbers value |
toLocaleString() | returns a string with a language sensitive representation of a number |
For example,
// check if a is integer const a = 12; console.log(Number.isInteger(a)); // true // check if b is NaN const b = NaN; console.log(Number.isNaN(b)); // true // display upto two decimal point const d = 5.1234; console.log(d.toFixed(2)); // 5.12
JavaScript Number Properties
Here is a list of Number properties in JavaScript.
Property | Description |
---|---|
EPSILON | returns the smallest interval between two representable numbers |
MAX_SAFE_INTEGER | returns the maximum safe integer |
MAX_VALUE | returns the largest possible value |
MIN_SAFE_INTEGER | returns the minimum safe integer |
MIN_VALUE | returns the smallest possible value |
NaN | represents 'Not-a-Number' value |
NEGATIVE_INFINITY | represents negative infinity |
POSITIVE_INFINITY | reprezentuje dodatnią nieskończoność |
prototyp | umożliwia dodawanie właściwości do obiektów Number |
Na przykład,
// largest possible value const a = Number.MAX_VALUE; console.log(a); // 1.7976931348623157e+308 // maximum safe integer const a = Number.MAX_SAFE_INTEGER; console.log(a); // 9007199254740991
Funkcja JavaScript Number ()
Number()
Funkcja służy do konwersji różnych typów danych z numerami. Na przykład,
const a = '23'; // string const b = true; // boolean //converting to number const result1 = Number(a); const result2 = Number(b); console.log(result1); // 23 console.log(result2); // 1
Jeśli chcesz dowiedzieć się więcej o konwersji liczb, odwiedź stronę Konwersja typu JavaScript.