Σε αυτό το σεμινάριο, θα μάθετε για τον αριθμό JavaScript με τη βοήθεια παραδειγμάτων.
Στο JavaScript, οι αριθμοί είναι πρωτόγονοι τύποι δεδομένων. Για παράδειγμα,
const a = 3; const b = 3.13;
Σε αντίθεση με ορισμένες άλλες γλώσσες προγραμματισμού, δεν χρειάζεται να δηλώνετε συγκεκριμένα για ακέραιες ή κυμαινόμενες τιμές χρησιμοποιώντας int , float κ.λπ.
Μπορείτε να χρησιμοποιήσετε την εκθετική σημειογραφία e για να συμπεριλάβετε πολύ μεγάλους ή πολύ μικρούς αριθμούς. Για παράδειγμα,
const a1 = 5e9; console.log(a1); //5000000000 const a2 = 5e-5; console.log(a2); // 0.00005
Οι αριθμοί μπορούν επίσης να συμβολίζονται με δεκαεξαδική σημειογραφία. Για παράδειγμα,
const a = 0xff; console.log(a); // 255 const b = 0x00 ; console.log(b); // 0
+ Χειριστής με αριθμούς
Όταν +
χρησιμοποιείται με αριθμούς, χρησιμοποιείται για την προσθήκη αριθμών. Για παράδειγμα,
const a = 4 + 9; console.log(a); // 13
Όταν +
χρησιμοποιείται με αριθμούς και συμβολοσειρές, χρησιμοποιείται για τη συνένωση τους. Για παράδειγμα,
const a = '4' + 9; console.log(a); // 49
Όταν μια αριθμητική συμβολοσειρά χρησιμοποιείται με άλλες αριθμητικές λειτουργίες, η αριθμητική συμβολοσειρά μετατρέπεται σε αριθμό. Για παράδειγμα,
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
Στο JavaScript, NaN
(Not a Number) είναι μια λέξη-κλειδί που δείχνει ότι η τιμή δεν είναι αριθμός.
Η εκτέλεση αριθμητικών πράξεων (εκτός +
) σε αριθμητική τιμή με αποτέλεσμα συμβολοσειράς NaN
. Για παράδειγμα,
const a = 4 - 'hello'; console.log(a); // NaN
Η ενσωματωμένη συνάρτηση isNaN()
μπορεί να χρησιμοποιηθεί για να βρει αν μια τιμή είναι ένας αριθμός. Για παράδειγμα,
const a = isNaN(9); console.log(a); // false const a = isNaN(4 - 'hello'); console.log(a); // true
Όταν ο typeof
χειριστής χρησιμοποιείται για NaN
τιμή, δίνει έξοδο αριθμού. Για παράδειγμα,
const a = 4 - 'hello'; console.log(a); // NaN console.log(typeof a); // "number"
Άπειρο JavaScript
Σε JavaScript, όταν γίνεται υπολογισμός που υπερβαίνει τον μεγαλύτερο (ή μικρότερο) δυνατό αριθμό, Infinity
(ή -Infinity
) επιστρέφεται. Για παράδειγμα,
const a = 2 / 0; console.log(a); // Infinity const a = -2 / 0; console.log(a); // -Infinity
JavaScript BigInt
Στο JavaScript, ο τύπος αριθμού μπορεί να αντιπροσωπεύει μόνο αριθμούς μικρότερους από (2 53 - 1) και περισσότερους από - (2 53 - 1) . Ωστόσο, εάν πρέπει να χρησιμοποιήσετε μεγαλύτερο αριθμό από αυτόν, μπορείτε να χρησιμοποιήσετε τον τύπο δεδομένων BigInt.
Ένας αριθμός BigInt δημιουργείται προσθέτοντας n στο τέλος ενός ακέραιου. Για παράδειγμα,
// BigInt value const value = 900719925124740998n; // Adding two big integers const value1 = value + 1n; console.log(value1); // returns "900719925124740999n"
Σημείωση: Το BigInt παρουσιάστηκε στη νεότερη έκδοση του JavaScript και δεν υποστηρίζεται από πολλά προγράμματα περιήγησης. Επισκεφτείτε την υποστήριξη JavaScript BigInt για να μάθετε περισσότερα.
Οι αριθμοί JavaScript αποθηκεύονται σε 64-bit
Στο JavaScript, οι αριθμοί αποθηκεύονται σε μορφή 64-bit IEEE-754, επίσης γνωστοί ως "αριθμοί κυμαινόμενου σημείου διπλής ακρίβειας".
Οι αριθμοί αποθηκεύονται σε 64 bit (ο αριθμός αποθηκεύεται σε θέσεις 0 έως 51 bit, ο εκθέτης σε θέσεις 52 έως 62 bit και η θέση εισόδου σε 63 bit).
Αριθμοί | Εκθέτης | Σημάδι |
---|---|---|
52 bit (0 - 51) | 11 bits (52- 62) | 1 bit (63) |
Προβλήματα ακριβείας
Οι λειτουργίες σε αριθμούς κυμαινόμενου σημείου οδηγούν σε απροσδόκητα αποτελέσματα. Για παράδειγμα,
const a = 0.1 + 0.2; console.log(a); // 0.30000000000000004
Το αποτέλεσμα θα πρέπει να είναι 0,3 αντί 0,30000000000000004 . Αυτό το σφάλμα παρουσιάζεται επειδή σε JavaScript, οι αριθμοί αποθηκεύονται σε δυαδική μορφή για να αντιπροσωπεύουν δεκαδικά ψηφία εσωτερικά. Και οι δεκαδικοί αριθμοί δεν μπορούν να αναπαρασταθούν με δυαδική μορφή ακριβώς.
Για να επιλύσετε το παραπάνω πρόβλημα, μπορείτε να κάνετε κάτι τέτοιο:
const a = (0.1 * 10 + 0.2 * 10) / 10; console.log(a); // 0.3
Μπορείτε επίσης να χρησιμοποιήσετε τη toFixed()
μέθοδο.
const a = 0.1 + 0.2; console.log(a.toFixed(2)); // 0.30
toFixed(2)
στρογγυλοποιεί τον δεκαδικό αριθμό σε δύο δεκαδικά ψηφία.
const a = 9999999999999999 console.log(a); // 10000000000000000
Σημείωση : Οι ακέραιοι αριθμοί είναι ακριβείς έως και 15 ψηφία.
Αριθμός αντικειμένων
Μπορείτε επίσης να δημιουργήσετε αριθμούς χρησιμοποιώντας τη new
λέξη-κλειδί. Για παράδειγμα,
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"
Σημείωση : Συνιστάται να αποφεύγετε τη χρήση αριθμητικών αντικειμένων. Η χρήση αριθμητικών αντικειμένων επιβραδύνει το πρόγραμμα.
Μέθοδοι αριθμού JavaScript
Εδώ είναι μια λίστα με τις ενσωματωμένες μεθόδους αριθμών σε JavaScript.
Μέθοδος | Περιγραφή |
---|---|
isNaN () | καθορίζει εάν η τιμή που πέρασε είναι NaN |
isFinite () | καθορίζει εάν η τιμή που πέρασε είναι ένας πεπερασμένος αριθμός |
είναιInteger () | καθορίζει εάν η τιμή που πέρασε είναι ακέραιος |
isSafeInteger () | καθορίζει εάν η τιμή που πέρασε είναι ένας ασφαλής ακέραιος |
parseFloat (συμβολοσειρά) | μετατρέπει την αριθμητική κινούμενη συμβολοσειρά σε κινούμενο σημείο |
parseInt (συμβολοσειρά, (radix)) | μετατρέπει την αριθμητική συμβολοσειρά σε ακέραιο |
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 | αντιπροσωπεύει θετικό άπειρο |
πρωτότυπο | επιτρέπει την προσθήκη ιδιοτήτων σε αντικείμενα αριθμού |
Για παράδειγμα,
// 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
Συνάρτηση αριθμού JavaScript ()
Η Number()
λειτουργία χρησιμοποιείται για τη μετατροπή διαφόρων τύπων δεδομένων σε αριθμούς. Για παράδειγμα,
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
Εάν θέλετε να μάθετε περισσότερα σχετικά με τη μετατροπή αριθμών, επισκεφθείτε τη μετατροπή τύπου JavaScript.