Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Στη JavaScript, οι αριθμοί αντιπροσωπεύονται από τον τύπο δεδομένων “Number” και μπορούν να περιέχουν αριθμητικές τιμές.

Μπορείτε να δηλώσετε έναν αριθμό στη JavaScript με ή χωρίς δεκαδικά ψηφία. Ένας αριθμός χωρίς δεκαδικά ψηφία ονομάζεται “ακέραιος”, ενώ ένας αριθμός με δεκαδικά ψηφία ονομάζεται “δεκαδικός αριθμός” ή “πλεονασματικός αριθμός”.

Εδώ είναι μερικά παραδείγματα δηλώσεων αριθμών στη JavaScript:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var integerNumber = 10;
var decimalNumber = 3.14;
var integerNumber = 10; var decimalNumber = 3.14;
var integerNumber = 10;
var decimalNumber = 3.14;

Στο παράδειγμα παραπάνω, η μεταβλητή “integerNumber” δηλώνει έναν ακέραιο αριθμό με την τιμή 10, ενώ η μεταβλητή “decimalNumber” δηλώνει έναν δεκαδικό αριθμό με την τιμή 3.14.

Η JavaScript υποστηρίζει επίσης την επιστημονική εκθετική σημείωση για την αναπαράσταση πολύ μεγάλων ή πολύ μικρών αριθμών. Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var scientificNumber = 1.23e6; // 1.23 x 10^6 = 1230000
var scientificNumber = 1.23e6; // 1.23 x 10^6 = 1230000
var scientificNumber = 1.23e6; // 1.23 x 10^6 = 1230000

Στο παράδειγμα παραπάνω, ο αριθμός 1.23e6 αναπαριστά τον αριθμό 1.23 πολλαπλασιασμένο με το 10^6, που είναι ίσο με 1230000.

Οι αριθμοί στη JavaScript είναι αρκετά ευέλικτοι και μπορούν να χρησιμοποιηθούν για διάφορους υπολογισμούς και μαθηματικές λειτουργίες.

Σωστά! Στη JavaScript, οι αριθμοί αντιπροσωπεύονται πάντα ως δεκαδικά αριθμητικά κινητής υποδιαστολής 64-bit, σύμφωνα με το διεθνές πρότυπο IEEE 754.

Αυτό σημαίνει ότι όλοι οι αριθμοί στη JavaScript αποθηκεύονται ως διπλής ακρίβειας (double precision) κινητά σημεία, ακολουθώντας τη δομή που περιγράφεται από το πρότυπο IEEE 754. Στην αναπαράσταση αυτή, τα bits 0 έως 51 αποθηκεύουν τον αριθμό (το κλάσμα), τα bits 52 έως 62 αποθηκεύουν τον εκθέτη, και το bit 63 αποθηκεύει το πρόσημο.

Αυτή η αναπαράσταση επιτρέπει την αποθήκευση αριθμών με μεγάλο εύρος τιμών και υψηλή ακρίβεια. Ωστόσο, αυτό σημαίνει επίσης ότι υπάρχουν ορισμένες ιδιαιτερότητες κατά τη χρήση αριθμών στη JavaScript, ιδίως όσον αφορά τις αριθμητικές λειτουργίες και τη σύγκριση αριθμών.

Είναι σημαντικό να γνωρίζετε αυτές τις λεπτομέρειες κατά την εκτέλεση αριθμητικών υπολογισμών και τη διαχείριση αριθμητικών τιμών στη JavaScript.

Στη JavaScript, οι ακέραιοι αριθμοί (χωρίς δεκαδική τελεία ή σημείωση εκθέτη) είναι ακριβείς μέχρι 15 ψηφία.

Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε ακέραιους αριθμούς με ακρίβεια έως και 15 ψηφία. Όταν υπερβαίνετε αυτό το όριο, οι ακέραιοι αριθμοί μπορεί να μην αναπαρίστανται με ακρίβεια και να προκαλούνται ανεπιθύμητα αποτελέσματα σε αριθμητικές λειτουργίες.

[adinserter block=”2″]

Εδώ είναι ένα παράδειγμα που δείχνει την ακρίβεια των ακεραίων αριθμών στη JavaScript:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var largeInteger = 1234567890123456;
console.log(largeInteger); // Εμφανίζει: 1234567890123456
var tooLargeInteger = 12345678901234567;
console.log(tooLargeInteger); // Εμφανίζει: 12345678901234568 (ανεπιθύμητο αποτέλεσμα)
var largeInteger = 1234567890123456; console.log(largeInteger); // Εμφανίζει: 1234567890123456 var tooLargeInteger = 12345678901234567; console.log(tooLargeInteger); // Εμφανίζει: 12345678901234568 (ανεπιθύμητο αποτέλεσμα)
var largeInteger = 1234567890123456;
console.log(largeInteger); // Εμφανίζει: 1234567890123456

var tooLargeInteger = 12345678901234567;
console.log(tooLargeInteger); // Εμφανίζει: 12345678901234568 (ανεπιθύμητο αποτέλεσμα)

Στο παράδειγμα παραπάνω, ο ακέραιος αριθμός largeInteger έχει μια τιμή που είναι ακριβής μέχρι τα 15 ψηφία, ενώ ο ακέραιος αριθμός tooLargeInteger υπερβαίνει το όριο των 15 ψηφίων και δεν αναπαρίσταται με ακρίβεια. Αναπαριστάται ως 12345678901234568, εμφανίζοντας ένα ανεπιθύμητο αποτέλεσμα.

Επομένως, όταν χρησιμοποιείτε ακέραιους αριθμούς στη JavaScript, είναι σημαντικό να λαμβάνετε υπόψη το όριο των 15 ψηφίων για την ακρίβεια των αριθμητικών υπολογισμών.

Στη JavaScript, οι αριθμοί κινητής υποδιαστολής (floating-point numbers) αποθηκεύονται ως διπλής ακρίβειας (double precision), ακολουθώντας το πρότυπο IEEE 754.

Οι αριθμοί κινητής υποδιαστολής στη JavaScript δεν είναι πάντα ακριβείς. Υπάρχει μια περιορισμένη ακρίβεια λόγω της πεπερασμένης αναπαράστασης τους σε δυαδική μορφή.

Εδώ είναι ένα παράδειγμα που δείχνει την περιορισμένη ακρίβεια των αριθμών κινητής υποδιαστολής στη JavaScript:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var preciseNumber = 0.1 + 0.2;
console.log(preciseNumber); // Εμφανίζει: 0.30000000000000004 (ανεπιθύμητο αποτέλεσμα)
var preciseNumber = 0.1 + 0.2; console.log(preciseNumber); // Εμφανίζει: 0.30000000000000004 (ανεπιθύμητο αποτέλεσμα)
var preciseNumber = 0.1 + 0.2;
console.log(preciseNumber); // Εμφανίζει: 0.30000000000000004 (ανεπιθύμητο αποτέλεσμα)

Στο παράδειγμα παραπάνω, το αποτέλεσμα της πράξης 0.1 + 0.2 δεν είναι ακριβώς 0.3, αλλά προσεγγίζεται στο 0.30000000000000004. Αυτό συμβαίνει λόγω της πεπερασμένης ακρίβειας των αριθμών κινητής υποδιαστολής.

Για να αποφύγετε τυχόν προβλήματα με την ακρίβεια των αριθμών κινητής υποδιαστολής, μπορείτε να χρησιμοποιήσετε μεθόδους όπως το toFixed() για να περιορίσετε τον αριθμό των δεκαδικών ψηφίων που εμφανίζονται.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var preciseNumber = 0.1 + 0.2;
var roundedNumber = preciseNumber.toFixed(2);
console.log(roundedNumber); // Εμφανίζει: 0.30
var preciseNumber = 0.1 + 0.2; var roundedNumber = preciseNumber.toFixed(2); console.log(roundedNumber); // Εμφανίζει: 0.30
var preciseNumber = 0.1 + 0.2;
var roundedNumber = preciseNumber.toFixed(2);
console.log(roundedNumber); // Εμφανίζει: 0.30

Στο παράδειγμα αυτό, η μέθοδος toFixed(2) χρησιμοποιείται για να περιορίσει τον αριθμό στα δύο δεκαδικά ψηφία και να επιστρέψει μια ακριβή προσέγγιση του αποτελέσματος ως string με τη μορφή “0.30”.

Είναι σημαντικό να είστε επιπλέον προσεκτικοί κατά την εκτέλεση αριθμητικών υπολογισμών στη JavaScript και να επιλέγετε τις κατάλληλες μεθόδους για τη διαχείριση της ακρίβειας και της μορφοποίησης των αριθμητικών τιμών.

[adinserter block=”3″]

Στη JavaScript, ο τελεστής + χρησιμοποιείται τόσο για την πρόσθεση όσο και για τη συνένωση (concatenation).

Όταν προσθέτετε δύο αριθμούς με τον τελεστή +, το αποτέλεσμα θα είναι ένας αριθμός:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var num1 = 5;
var num2 = 10;
var sum = num1 + num2;
console.log(sum); // Εμφανίζει: 15
var num1 = 5; var num2 = 10; var sum = num1 + num2; console.log(sum); // Εμφανίζει: 15
var num1 = 5;
var num2 = 10;
var sum = num1 + num2;
console.log(sum); // Εμφανίζει: 15

Ωστόσο, όταν προσθέτετε δύο συμβολοσειρές (strings), το αποτέλεσμα θα είναι η συνένωση των δύο συμβολοσειρών:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var str1 = "Hello";
var str2 = "World";
var result = str1 + str2;
console.log(result); // Εμφανίζει: "HelloWorld"
var str1 = "Hello"; var str2 = "World"; var result = str1 + str2; console.log(result); // Εμφανίζει: "HelloWorld"
var str1 = "Hello";
var str2 = "World";
var result = str1 + str2;
console.log(result); // Εμφανίζει: "HelloWorld"

Αν ανακατέψετε αριθμούς και συμβολοσειρές με τον τελεστή +, η συμπεριφορά εξαρτάται από τη σειρά των τελεστέων:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var num = 5;
var str = "10";
var result1 = num + str; // Αριθμός + Συμβολοσειρά = Συνένωση
console.log(result1); // Εμφανίζει: "510"
var result2 = str + num; // Συμβολοσειρά + Αριθμός = Συνένωση
console.log(result2); // Εμφανίζει: "105"
var num = 5; var str = "10"; var result1 = num + str; // Αριθμός + Συμβολοσειρά = Συνένωση console.log(result1); // Εμφανίζει: "510" var result2 = str + num; // Συμβολοσειρά + Αριθμός = Συνένωση console.log(result2); // Εμφανίζει: "105"
var num = 5;
var str = "10";
var result1 = num + str; // Αριθμός + Συμβολοσειρά = Συνένωση
console.log(result1); // Εμφανίζει: "510"

var result2 = str + num; // Συμβολοσειρά + Αριθμός = Συνένωση
console.log(result2); // Εμφανίζει: "105"

Για να αποφύγετε τυχόν προβλήματα με τη συμπεριφορά του τελεστή +, βεβαιωθείτε ότι κατανοείτε τον τύπο των τιμών που προσθέτετε και διαχειρίζεστε ανάλογα το αποτέλεσμα.

Έτσι είναι! Στη JavaScript, οι συμβολοσειρές μπορούν να περιέχουν αριθμητικό περιεχόμενο. Αυτό σημαίνει ότι μπορείτε να αποθηκεύσετε αριθμητικές τιμές σε μεταβλητές τύπου συμβολοσειράς.

Εδώ είναι ένα παράδειγμα που δείχνει τη χρήση αριθμητικών συμβολοσειρών στη JavaScript:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var numString1 = "10";
var numString2 = "5";
var sum = numString1 + numString2;
console.log(sum); // Εμφανίζει: "105" (συνένωση συμβολοσειρών)
var numString3 = "15";
var numString4 = "2";
var product = numString3 * numString4;
console.log(product); // Εμφανίζει: 30 (αριθμητική πράξη)
var numString5 = "20";
var numString6 = "3";
var division = numString5 / numString6;
console.log(division); // Εμφανίζει: 6.666666666666667 (αριθμητική πράξη)
var numString1 = "10"; var numString2 = "5"; var sum = numString1 + numString2; console.log(sum); // Εμφανίζει: "105" (συνένωση συμβολοσειρών) var numString3 = "15"; var numString4 = "2"; var product = numString3 * numString4; console.log(product); // Εμφανίζει: 30 (αριθμητική πράξη) var numString5 = "20"; var numString6 = "3"; var division = numString5 / numString6; console.log(division); // Εμφανίζει: 6.666666666666667 (αριθμητική πράξη)
var numString1 = "10";
var numString2 = "5";
var sum = numString1 + numString2;
console.log(sum); // Εμφανίζει: "105" (συνένωση συμβολοσειρών)

var numString3 = "15";
var numString4 = "2";
var product = numString3 * numString4;
console.log(product); // Εμφανίζει: 30 (αριθμητική πράξη)

var numString5 = "20";
var numString6 = "3";
var division = numString5 / numString6;
console.log(division); // Εμφανίζει: 6.666666666666667 (αριθμητική πράξη)

Στο παράδειγμα παραπάνω, οι μεταβλητές numString1, numString2, numString3, numString4, numString5, και numString6 είναι συμβολοσειρές που περιέχουν αριθμητικές τιμές. Μπορούμε να εκτελέσουμε συνένωση συμβολοσειρών μεταξύ τους, αλλά επίσης μπορούμε να εκτελέσουμε αριθμητικές πράξεις με τη χρήση των αριθμητικών τιμών που περιέχονται στις συμβολοσειρές.

Ωστόσο, πρέπει να γνωρίζετε ότι ανάμειξη αριθμητικών τιμών με συμβολοσειρές μπορεί να οδηγήσει σε μη αναμενόμενα αποτελέσματα. Είναι σημαντικό να λαμβάνετε υπόψη τον τύπο των τιμών που χειρίζεστε και να διαχειρίζεστε τα αποτελέσματα αναλόγως για να αποφύγετε προβλήματα στην αριθμητική ακρίβεια ή την αναπαράσταση των τιμών.

Στη JavaScript, η λέξη-κλειδί NaN υποδηλώνει ότι ένας αριθμός δεν είναι έγκυρος αριθμός.

Όταν εκτελείτε αριθμητικές πράξεις με μη αριθμητικές συμβολοσειρές, το αποτέλεσμα θα είναι NaN:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var result1 = "Hello" / 5;
console.log(result1); // Εμφανίζει: NaN
var result2 = "20" * "World";
console.log(result2); // Εμφανίζει: NaN
var result1 = "Hello" / 5; console.log(result1); // Εμφανίζει: NaN var result2 = "20" * "World"; console.log(result2); // Εμφανίζει: NaN
var result1 = "Hello" / 5;
console.log(result1); // Εμφανίζει: NaN

var result2 = "20" * "World";
console.log(result2); // Εμφανίζει: NaN

Στο παράδειγμα παραπάνω, και στις δύο περιπτώσεις, προσπαθούμε να εκτελέσουμε αριθμητικές πράξεις με μη αριθμητικές συμβολοσειρές. Το αποτέλεσμα σε αυτές τις περιπτώσεις είναι NaN, δηλαδή μη έγκυρος αριθμός.

[adinserter block=”4″]

Μπορείτε να ελέγξετε αν ένα αποτέλεσμα είναι NaN χρησιμοποιώντας τη συνάρτηση isNaN():

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var result = "Hello" / 5;
console.log(isNaN(result)); // Εμφανίζει: true
var result = "Hello" / 5; console.log(isNaN(result)); // Εμφανίζει: true
var result = "Hello" / 5;
console.log(isNaN(result)); // Εμφανίζει: true

Η συνάρτηση isNaN() επιστρέφει true εάν το αποτέλεσμα είναι NaN, και false διαφορετικά.

Είναι σημαντικό να ελέγχετε τα αποτελέσματα των αριθμητικών πράξεων για την παρουσία της τιμής NaN, προκειμένου να διαχειριστείτε τυχόν σφάλματα ή μη έγκυρες τιμές με κατάλληλο τρόπο.

Σωστά! Στη JavaScript, η τιμή Infinity (ή -Infinity) χρησιμοποιείται για να υποδηλώσει έναν αριθμό που είναι μεγαλύτερος (ή μικρότερος) από το μεγαλύτερο δυνατό αριθμητικό μέγεθος.

Ένα παράδειγμα χρήσης της τιμής Infinity είναι όταν διαιρείτε έναν αριθμό με το μηδέν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var result1 = 1 / 0;
console.log(result1); // Εμφανίζει: Infinity
var result2 = -1 / 0;
console.log(result2); // Εμφανίζει: -Infinity
var result1 = 1 / 0; console.log(result1); // Εμφανίζει: Infinity var result2 = -1 / 0; console.log(result2); // Εμφανίζει: -Infinity
var result1 = 1 / 0;
console.log(result1); // Εμφανίζει: Infinity

var result2 = -1 / 0;
console.log(result2); // Εμφανίζει: -Infinity

Στο παράδειγμα παραπάνω, η διαίρεση του αριθμού 1 με το μηδέν παράγει την τιμή Infinity, ενώ η διαίρεση του αρνητικού αριθμού -1 με το μηδέν παράγει την τιμή -Infinity.

Μπορείτε να ελέγξετε εάν ένα αποτέλεσμα είναι Infinity χρησιμοποιώντας τη συνάρτηση isFinite():

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var result = 1 / 0;
console.log(isFinite(result)); // Εμφανίζει: false
var result = 1 / 0; console.log(isFinite(result)); // Εμφανίζει: false
var result = 1 / 0;
console.log(isFinite(result)); // Εμφανίζει: false

Η συνάρτηση isFinite() επιστρέφει true εάν το αποτέλεσμα δεν είναι Infinity ή -Infinity, και false διαφορετικά.

Είναι σημαντικό να ελέγχετε τα αποτελέσματα των αριθμητικών πράξεων για την παρουσία των τιμών Infinity ή -Infinity, προκειμένου να διαχειριστείτε τυχόν σφάλματα ή μη έγκυρες τιμές με κατάλληλο τρόπο.

Στη JavaScript, αριθμητικές σταθερές που προηγούνται από το πρόθεμα 0x ερμηνεύονται ως δεκαεξαδικοί αριθμοί.

Ένα παράδειγμα χρήσης δεκαεξαδικών αριθμών στη JavaScript είναι το εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var decimal = 10;
var hexadecimal = 0xA;
console.log(decimal); // Εμφανίζει: 10
console.log(hexadecimal); // Εμφανίζει: 10
var decimal = 10; var hexadecimal = 0xA; console.log(decimal); // Εμφανίζει: 10 console.log(hexadecimal); // Εμφανίζει: 10
var decimal = 10;
var hexadecimal = 0xA;
console.log(decimal); // Εμφανίζει: 10
console.log(hexadecimal); // Εμφανίζει: 10

Στο παράδειγμα παραπάνω, οι μεταβλητές decimal και hexadecimal έχουν τις ίδιες αριθμητικές τιμές, 10. Ωστόσο, η τιμή της hexadecimal έχει προηγηθεί από το πρόθεμα 0x, που υποδηλώνει ότι είναι δεκαεξαδικός αριθμός.

Οι δεκαεξαδικοί αριθμοί χρησιμοποιούν τις ψηφία 0-9 για τις πρώτες δέκα θέσεις και τις γράμματα A-F (ή a-f) για τις επόμενες έξι θέσεις. Για παράδειγμα, ο αριθμός 10 στο δεκαεξαδικό σύστημα αναπαρίσταται από το γράμμα A.

Είναι σημαντικό να σημειώσετε ότι οι δεκαεξαδικοί αριθμοί χρησιμοποιούνται συχνά για αναπαράσταση χρωμάτων στον κώδικα HTML και CSS, καθώς και για άλλες εφαρμογές όπου η δεκαεξαδική αναπαράσταση είναι πρακτική ή απαραίτητη.

Έτσι είναι! Στη JavaScript, οι αριθμοί παρουσιάζονται από προεπιλογή ως δεκαδικά στοιχεία (base 10). Ωστόσο, μπορείτε να χρησιμοποιήσετε τη μέθοδο toString() για να εξάγετε αριθμούς από βάση 2 έως βάση 36.

Εδώ είναι ένα παράδειγμα που δείχνει πώς να εξάγετε έναν αριθμό σε διάφορες βάσεις:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var number = 42;
var binary = number.toString(2);
console.log(binary); // Εμφανίζει: "101010" (βάση 2)
var octal = number.toString(8);
console.log(octal); // Εμφανίζει: "52" (βάση 8)
var hexadecimal = number.toString(16);
console.log(hexadecimal); // Εμφανίζει: "2a" (βάση 16)
var number = 42; var binary = number.toString(2); console.log(binary); // Εμφανίζει: "101010" (βάση 2) var octal = number.toString(8); console.log(octal); // Εμφανίζει: "52" (βάση 8) var hexadecimal = number.toString(16); console.log(hexadecimal); // Εμφανίζει: "2a" (βάση 16)
var number = 42;

var binary = number.toString(2);
console.log(binary); // Εμφανίζει: "101010" (βάση 2)

var octal = number.toString(8);
console.log(octal); // Εμφανίζει: "52" (βάση 8)

var hexadecimal = number.toString(16);
console.log(hexadecimal); // Εμφανίζει: "2a" (βάση 16)

Στο παράδειγμα παραπάνω, ο αριθμός 42 εξάγεται σε διάφορες βάσεις με τη χρήση της μεθόδου toString(). Με την παράμετρο που περνάτε στη μέθοδο, μπορείτε να καθορίσετε τη βάση που θέλετε να χρησιμοποιηθεί για την αναπαράσταση του αριθμού. Για παράδειγμα, η βάση 2 αντιπροσωπεύει το δυαδικό σύστημα, η βάση 8 αντιπροσωπεύει το οκταδικό σύστημα και η βάση 16 αντιπροσωπεύει το δεκαεξαδικό σύστημα.

Μπορείτε να χρησιμοποιήσετε τη μέθοδο toString() για να εξάγετε αριθμούς σε οποιαδήποτε βάση από τη βάση 2 έως τη βάση 36. Εάν δεν περάσετε καμία παράμετρο στη μέθοδο toString(), τότε ο αριθμός θα εξαχθεί στην προεπιλεγμένη δεκαδική βάση.

Στην JavaScript, οι αριθμοί συνήθως είναι αρχικές τιμές (primitive values) που δημιουργούνται από αριθμητικά αντίστοιχα (literals) όπως οι ακέραιοι αριθμοί ή οι αριθμοί με κλασματικό μέρος.

[adinserter block=”5″]

Ωστόσο, υπάρχει επίσης η δυνατότητα να δημιουργήσετε αριθμούς ως αντικείμενα JavaScript. Η δημιουργία αριθμών ως αντικειμένων επιτρέπει τη χρήση επιπλέον μεθόδων και ιδιοτήτων που παρέχονται από τον προεπιλεγμένο αντικειμενικό προσανατολισμό της JavaScript.

Για παράδειγμα, μπορείτε να δημιουργήσετε έναν αριθμό ως αντικείμενο χρησιμοποιώντας τον κατασκευαστή Number:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var numberObject = new Number(42);
console.log(numberObject); // Εμφανίζει: [Number: 42]
var numberObject = new Number(42); console.log(numberObject); // Εμφανίζει: [Number: 42]
var numberObject = new Number(42);
console.log(numberObject); // Εμφανίζει: [Number: 42]

Στο παράδειγμα παραπάνω, ο αριθμός 42 δημιουργείται ως αντικείμενο Number με τη χρήση του κατασκευαστή Number. Το αντικείμενο Number περιβάλλει την αρχική αριθμική τιμή και παρέχει επιπλέον μεθόδους και ιδιότητες που μπορείτε να χρησιμοποιήσετε για την εκτέλεση διάφορων λειτουργιών σε αριθμούς.

Είναι σημαντικό να σημειωθεί ότι η δημιουργία αριθμών ως αντικειμένων δεν είναι συνηθισμένη πρακτική στην καθημερινή ανάπτυξη JavaScript. Οι αριθμοί ως αρχικές τιμές παρέχουν τις απαραίτητες λειτουργίες για τις περισσότερες καταστάσεις.

Στη JavaScript, ο τελεστής == χρησιμοποιείται για να συγκρίνει δύο τιμές για ισότητα. Όμως, πρέπει να είστε προσεκτικοί με τον τρόπο που χρησιμοποιείται αυτός ο τελεστής, καθώς μπορεί να οδηγήσει σε μη αναμενόμενα αποτελέσματα λόγω των κανόνων αυτόματης μετατροπής τύπων (type coercion) που εφαρμόζει η JavaScript.

Όταν χρησιμοποιείτε τον τελεστή == για να συγκρίνετε δύο τιμές, η JavaScript προσπαθεί να μετατρέψει τις τιμές σε έναν κοινό τύπο πριν τη σύγκριση. Αυτό μπορεί να οδηγήσει σε απρόσμενες μετατροπές τιμών και σε πιθανές απώλειες ακρίβειας.

Για παράδειγμα, όταν συγκρίνετε έναν αριθμό και μια αλφαριθμητική τιμή με τον τελεστή ==, η JavaScript θα προσπαθήσει να μετατρέψει την αλφαριθμητική τιμή σε αριθμό πριν τη σύγκριση. Αυτή η αυτόματη μετατροπή μπορεί να οδηγήσει σε μη αναμενόμενα αποτελέσματα, όπως στην περίπτωση που περιγράψατε:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var x = 42;
var y = "42";
console.log(x == y); // Εμφανίζει: true
var x = 42; var y = "42"; console.log(x == y); // Εμφανίζει: true
var x = 42;
var y = "42";

console.log(x == y); // Εμφανίζει: true

Στο παράδειγμα παραπάνω, η αριθμητική τιμή x και η αλφαριθμητική τιμή "42" μετατρέπονται σε αριθμούς (καθώς η αλφαριθμητική τιμή μοιάζει με αριθμό) και συγκρίνονται. Επειδή οι τιμές είναι ίσες μεταξύ τους μετά τη μετατροπή, το αποτέλεσμα είναι true.

Για να αποφύγετε αυτούς τους πιθανούς προβληματισμούς με την αυτόματη μετατροπή τύπων, συνίσταται να χρησιμοποιείτε τον τελεστή === (strict equality) για να συγκρίνετε τιμές σε JavaScript. Ο τελεστής === συγκρίνει τις τιμές και τους τύπους τους, χωρίς να εφαρμόζει αυτόματη μετατροπή τύπων.

Στη JavaScript, ο τελεστής === χρησιμοποιείται για την αυστηρή σύγκριση δύο τιμών. Αν οι τιμές είναι διαφορετικούς τύπους ή έχουν διαφορετική τιμή, τότε η σύγκριση θα επιστρέψει false. Αν οι τιμές είναι του ίδιου τύπου και έχουν την ίδια τιμή, τότε η σύγκριση θα επιστρέψει true.

Στην περίπτωση που περιγράψατε:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var x = 42;
var y = "42";
console.log(x === y); // Εμφανίζει: false
var x = 42; var y = "42"; console.log(x === y); // Εμφανίζει: false
var x = 42;
var y = "42";

console.log(x === y); // Εμφανίζει: false

Ο αριθμός x είναι τύπου αριθμός και η αλφαριθμητική τιμή "42" είναι τύπου αλφαριθμητικό. Παρόλο που η αλφαριθμητική τιμή μοιάζει με αριθμό, ο τελεστής === εκτελεί αυστηρή σύγκριση τύπου και τιμής. Επειδή οι τιμές έχουν διαφορετικό τύπο, η σύγκριση επιστρέφει false.

Η χρήση του τελεστή === για την αυστηρή σύγκριση είναι συνήθης πρακτική και συνιστάται για αποφυγή προβλημάτων που μπορεί να προκύψουν από την αυτόματη μετατροπή τύπων που εφαρμόζει ο τελεστής ==.

21 Αυγούστου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων