Αριθμοί του JavaScript
- Προηγούμενη σελίδα JS string template
- Επόμενη σελίδα JS BigInt
GreekScript has only one number type.
Whether or not to include a decimal point when writing numbers is optional.
GreekScript Number
JavaScript numbers can be written with or without a decimal point:
Παράδειγμα
var x = 3.14; // A number with a decimal point var y = 3; // A number without a decimal point
Extremely large or small numbers can be written in scientific notation:
Παράδειγμα
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript numbers are always 64-bit floating-point numbers
Unlike many other programming languages, JavaScript does not define different types of numbers, such as integers, shorts, longs, floats, etc.
JavaScript numbers are always stored as double-precision floating-point numbers, according to the international IEEE 754 standard.
This format stores numbers with 64 bits, where 0 to 51 store the number (fraction), 52 to 62 store the exponent, and 63 bits store the sign:
Value (also known as Fraction/Mantissa) | Exponent | Sign |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Precision
Integers (not using exponent or scientific notation) are precise to 15 digits.
Παράδειγμα
var x = 999999999999999; // x will be 999999999999999 var y = 9999999999999999; // y will be 10000000000000000
The maximum number of decimal places is 17, but floating-point arithmetic is not always 100% accurate:
Παράδειγμα
var x = 0.2 + 0.1; // x will be 0.30000000000000004
Using multiplication and division can help solve the above problem:
Παράδειγμα
var x = (0.2 * 10 + 0.1 * 10) / 10; // x will be 0.3
Adding a number and a string
Warning!!
JavaScript's addition and concatenation (concatenation) both use the + operator.
Numbers use addition. Strings use concatenation.
If you add two numbers, the result will be a number:
Παράδειγμα
var x = 10; var y = 20; var z = x + y; // z will be 30 (a number)
If you add two strings, the result will be a string concatenation:
Παράδειγμα
var x = "10"; var y = "20"; var z = x + y; // ο z θα είναι 1020 (αλφαριθμητική συμβολοσειρά)
If you add a number and a string, the result will also be a string concatenation:
Παράδειγμα
var x = 10; var y = "20"; var z = x + y; // z will be 1020 (a string)
Αν προσθέσετε έναν αριθμό σε μια αλφαριθμητική συμβολοσειρά, το αποτέλεσμα θα είναι η αλληλουχία της συμβολοσειράς:
Παράδειγμα
var x = "10"; var y = 20; var z = x + y; // ο z θα είναι 1020 (αλφαριθμητική συμβολοσειρά)
Η συχνή σφάλμα είναι να πιστεύει ότι το αποτέλεσμα θα πρέπει να είναι 30:
Παράδειγμα
var x = 10; var y = 20; var z = "The result is: " + x + y;
Η συχνή σφάλμα είναι να πιστεύει ότι το αποτέλεσμα θα πρέπει να είναι 102030:
Παράδειγμα
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
Το JavaScript συναρμολογεί από αριστερά προς δεξιά.
Επειδή ο x και ο y είναι αριθμοί, η 10 + 20 θα προστεθεί.
Επειδή ο z είναι αλφαριθμητική συμβολοσειρά, η 30 + "30" γίνεται αλληλουχία.
Αριθμητική συμβολοσειρά
Οι αλφαριθμητικές συμβολοσειρές του JavaScript μπορούν να έχουν αριθμητικό περιεχόμενο:
var x = 100; // ο x είναι αριθμός var y = "100"; // ο y είναι αλφαριθμητική συμβολοσειρά
Σε όλες τις αριθμητικές πράξεις, το JavaScript προσπαθεί να μετατρέψει τις αλφαριθμητικές συμβολοσειρές σε αριθμούς:
Αυτό το παράδειγμα λειτουργεί έτσι:
var x = "100"; var y = "10"; var z = x / y; // ο z θα είναι 10
Αυτό το παράδειγμα θα λειτουργήσει όπως και το προηγούμενο παράδειγμα:
var x = "100"; var y = "10"; var z = x * y; // ο z θα είναι 1000
Αυτό το παράδειγμα λειτουργεί έτσι:
var x = "100"; var y = "10"; var z = x - y; // ο z θα είναι 90
αλλά αυτό το παράδειγμα δεν θα λειτουργήσει όπως το προηγούμενο παράδειγμα:
var x = "100"; var y = "10"; var z = x + y; // ο z δεν θα είναι 110 (είναι 10010)
Στο τελευταίο παράδειγμα, το JavaScript χρησιμοποιεί τον αριθμητικό τελεστή + για την αλληλουχία συμβολοσειράς.
NaN - Ανυπολόγιστος Αριθμός
NaN
είναι κλειστή λέξη του JavaScript, που δείχνει ότι ένας αριθμός δεν είναι νόμιμος αριθμός.
Η απόδοση της διαίρεσης με μια μη αριθμητική αλφαριθμητική συμβολοσειρά είναι NaN (Not a Number):
Παράδειγμα
var x = 100 / "Apple"; // ο x θα είναι NaN (Not a Number)
είτε, αν η αλφαριθμητική συμβολοσειρά περιέχει αριθμούς, τότε το αποτέλεσμα θα είναι αριθμός:
Παράδειγμα
var x = 100 / "10"; // ο x θα είναι 10
Μπορείτε να χρησιμοποιήσετε τη全局 JavaScript συναρτηση isNaN()
να καθορίσει αν μια τιμή είναι αριθμός:
Παράδειγμα
var x = 100 / "Apple"; isNaN(x); // Επιστρέφει το true, γιατί το x δεν είναι αριθμός
να είστε προσεκτικοί NaN
。Αν χρησιμοποιείτε στο μαθηματικό σας υπολογισμό NaN
τότε το αποτέλεσμα θα είναι επίσης NaN
:
Παράδειγμα
var x = NaN; var y = 5; var z = x + y; // Ο z θα είναι NaN
οι αποτελέσματα μπορεί να είναι συνδυασμένα:
Παράδειγμα
var x = NaN; var y = "5"; var z = x + y; // Ο z θα είναι NaN5
NaN
είναι αριθμόςtypeof NaN
επιστρέφει number
:
Παράδειγμα
typeof NaN; // Επιστρέφει "number"
Infinity
Infinity
ή -Infinity
)είναι η τιμή που το JavaScript επιστρέφει όταν ο αριθμός υπερβαίνει το μέγιστο δυνατό μέγεθος.
Παράδειγμα
var myNumber = 2; while (myNumber != Infinity) { // Εκτελεί μέχρι το Infinity myNumber = myNumber * myNumber; }
Η διαίρεση με το μηδέν (-zero) δημιουργεί επίσης Infinity
:
Παράδειγμα
var x = 2 / 0; // Ο x θα είναι Infinity var y = -2 / 0; // Ο y θα είναι -Infinity
Infinity
είναι αριθμός:typeOf Infinity
επιστρέφει number
。
Παράδειγμα
typeof Infinity; // Επιστρέφει "number"
δεκαεξαδικό
Το JavaScript θα ερμηνεύσει τον πρόθεμα 0x
οι αριθμητικές μονάδες εξηγούνται ως δεκαεξαδικές.
Παράδειγμα
var x = 0xFF; // Ο x θα είναι 255.
Μην γράφετε αριθμούς με προκαταρκτικό μηδέν (π.χ. 07).
Μερικές εκδόσεις του JavaScript θα ερμηνεύσουν τους αριθμούς με προκαταρκτικό μηδέν ως οκταδικούς.
Από προεπιλογή, το JavaScript εμφανίζει τους αριθμούς ως δεκαδικούς.
Αλλά μπορείτε να χρησιμοποιήσετε toString()
Η μέθοδος εκτυπώνει τον αριθμό σε δεκαεξαδικό, οκταδικό ή δυαδικό.
Παράδειγμα
var myNumber = 128; myNumber.toString(16); // Επιστρέφει 80 myNumber.toString(8); // Επιστρέφει 200 myNumber.toString(2); // Επιστρέφει 10000000
Οι αριθμοί μπορούν να είναι αντικείμενα
Συνήθως το JavaScript δημιουργεί αριθμούς μέσω των πρωτογενών τιμών: var x = 123
Αλλά μπορεί να χρησιμοποιηθεί και η λέξη-κλειδί new
Ορισμένο ως αντικείμενο: var y = new Number(123)
Παράδειγμα
var x = 123; var y = new Number(123); // typeof x επιστρέφει number // typeof y επιστρέφει object
Παρακαλώ μην δημιουργείτε αντικείμενα αριθμού. Αυτό μπορεί να μειώσει την ταχύτητα εκτέλεσης.
new
Οι λέξεις-κλειδιά κάνουν το κώδικα πιο περίπλοκο και προκαλούν ορισμένα απρόβλεπτα αποτελέσματα:
Όταν χρησιμοποιείτε ==
Με τον οπτικό παράγοντα, τα αριθμητικά φαίνονται ίδια:
Παράδειγμα
var x = 500; var y = new Number(500); // (x == y) είναι αληθές, επειδή ο τύπος του x και του y είναι ίδιος
Όταν χρησιμοποιείτε ===
Μετά την χρήση του οπτικού παράγοντα, τα αριθμητικά γίνονται μη ίδια, επειδή ===
Οι οπτικοί παράγοντες χρειάζονται τόσο τον τύπο όσο και την τιμή για να είναι ίδιοι.
Παράδειγμα
var x = 500; var y = new Number(500); // (x === y) είναι ψευδές, επειδή ο τύπος του x και του y είναι διαφορετικός
Κακότερα ακόμα. Τα αντικείμενα δεν μπορούν να συγκριθούν:
Παράδειγμα
var x = new Number(500); var y = new Number(500); // (x == y) είναι ψευδές, επειδή τα αντικείμενα δεν μπορούν να συγκριθούν
Τα αντικείμενα JavaScript δεν μπορούν να συγκριθούν.
- Προηγούμενη σελίδα JS string template
- Επόμενη σελίδα JS BigInt