Κεφάλαιο 4

Εκφράσεις και τελεστές - Χειρισμός τιμών

Εκφράσεις και τελεστές - Χειρισμός τιμών

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

Χρήση τελεστών στις εκφράσεις

Δείτε την παρακάτω έκφραση :

nSum = 4+5

Χρησιμοποιούμε δύο τελεστές στην έκφραση αυτή. Το + είναι ένας τελεστής που προσθέτει δύο σταθερές τιμές και ο = βάζει το αποτέλεσμα σε κάτι, στην περίπτωση αυτή σε μια μεταβλητή που λέγεται nSum. Ορίστε άλλη μια έκφραση :

nTax = nCost * nTaxRate

H έκφραση αυτή είναι λίγο πιο περίπλοκη. Χρησιμοποιούμε τον τελεστή πολλαπλασιασμού ( * ), για να πολλαπλασιάσουμε τις τιμές που περιέχουν δύο μεταβλητές ( nCost και η nTaxRate ). Χρησιμοποιήσαμε και πάλι τον τελεστή = για να βάλουμε το αποτέλεσμα σε μια μεταβλητή, αυτή τη φορά την nTax .
Οι εκφράσεις κάνουν τη δουλειά τους στη δεξιά μεριά και εκχωρούν τιμές στη μεταβλητή που βρίσκεται αριστερά. Το σύμβολο = είναι γνωστό σαν τελεστής εκχώρησης.
Το αποτέλεσμα μιας έκφρασης είναι πάντα μια και μόνο τιμή. Θα καταλάβετε ξεκάθαρα τη διαφορά μιας μεταβλητής και μιας σταθεράς στο επόμενο παράδειγμα :

7=6+7

Δεν μπορείτε να εκχωρήσετε μια νέα τιμή στον αριθμό 7 επειδή είναι σταθερά. Δεν μπορείτε να αλλάξετε την τιμή μιας σταθεράς. Η παραπάνω έκφραση είναι τελείως λάθος. Δεν μπορείτε να εκχωρήσετε νέες τιμές σε σταθερές, μόνο σε μεταβλητές. Με το παρακάτω παράδειγμα όμως δεν υπάρχει λάθος :

nSum = 6+7

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

Οι εκφράσεις λοιπόν είναι αυτής της μορφής :

μεταβλητή = ( τελεστές που δρουν σε μεταβλητές και σταθερές )

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

nSum = nValue = 6 + 7

Είναι λάθος γιατί δεν ακολουθεί τη μορφή που είπαμε παραπάνω. Προσπαθούμε να εκχωρήσουμε το αποτέλεσμα σε δύο μεταβλητές ταυτόχρονα πράγμα που δεν μπορούμε να κάνουμε. Αν θέλουμε την ίδια τιμή και στις δύο μεταβλητές αυτό γίνεται ως εξής :

nValue = 6 +7
nSum = nValue

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

Αριθμητικοί Τελεστές

Πρόσθεση

Παράδειγμα :

var nSum = 0
var nCost = 57
nSum = 25 + nCost + 33

Το απλό αυτό σενάριο δηλώνει δύο μεταβλητές και εκχωρεί σε καθεμία αρχικές τιμές. Κατόπιν προσθέτει δύο αριθμούς (25 και 33), καθώς και την τιμή στην nCost και εκχωρεί το αποτέλεσμα στη μεταβλητή nSum.

Αφαίρεση

Παράδειγμα :

var nProfit = 0
var nPrice = 99
var nCosts = 47
nProfit = nPrice - nCosts

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

Πολλαπλασιασμός

Παράδειγμα :

var nArea = 0
var nWidth =100
var nLength =33
nArea = nWidth * nLength

Εδώ χρησιμοποιήσαμε τον τελεστή πολλαπλασιασμού για να πολλαπλασιάσουμε το πλάτος (η τιμή στην nWidth) επί το μήκος (η τιμή στην nLength) και μετά εκχωρήσαμε το αποτέλεσμα στη μεταβλητή nArea.

Διαίρεση

Παράδειγμα :

var nPricePerPerson = 0
var nTotalCost = 1500
var nPeople = 40
nPricePerPerson = nTotalCost / nPeople

Αυτή τη φορά χρησιμοποιήσαμε τον τελεστή διαίρεσης για να διαιρέσουμε την τιμή της nTotalCost δια της τιμής στην nPeople (1500 / 40 = 37,5).

Modulus - Διαίρεση με υπόλοιπο

Παράδειγμα :

var nRoughPrice = 0
var nTotalCost = 1500
var nPeople = 40
nRoughPrice = nTotalCost % nPeople

Η πράξη modulus είναι ένα είδος πράξης στρογγυλοποίησης. Όταν δεν χρειάζεστε απόλυτη ακρίβεια, μπορείτε να κάνετε την πράξη και να πετάξετε ό,τι βρίσκεται στα δεξιά του δεκαδικού ψηφίου. Στο παράδειγμα, διαιρούμε την τιμή στην nTotalCost δια της τιμής στην nPeople (1500 / 40 = 37,5 ). Αυτή τη φορά όμως χρησιμοποιούμε το σύμβολο % αντί του συμβόλου /. Έτσι μετά τη διαίρεση, το 5 χάνεται και στην μεταβλητή nRoughPrice εκχωρείται ο αριθμός 37.

Τελεστές συμβολοσειρών

Ο τελεστής πρόσθεσης + μπορεί επό\ίσης να χρησιμοποιηθεί για να βάλει μαζί στοιχειοσειρές και γι'αυτό καλείται τελεστής αλληλουχίας, όταν χρησιμοποιείται με τον τρόπο αυτό.

Παράδειγμα :

var sFirstName = ''Derek''
var sLastName = ''Halfabee''
var sFullName = sFirstName + '' '' + sLastName

O τελεστής + βάζει σε αλληλουχία τις συμβολοσειρές, τις ενώνει δηλαδή, ώστε το αποτέλεσμα στη μεταβλητή sFullName να ισοδυναμεί στο Derek Halfabee.

ΛογικοίΤελεστές

Οι λογικοί τελεστές ή τελεστές Boolean χρησιμοποιούνται συχνά στον προγραμματισμό. Χρησιμοποιούνται για να κάνουν τα προγράμματα να παίρνουν αποφάσεις για το τι πρόκειται να κάνουν στη συνέχεια. Η JavaScript, μαζί με τις περισσότερες γλώσσες προγραμματισμού, διαθέτει δύο σταθερές Boolean: true (αληθές) ή false (ψευδές). Οι λογικοί τελεστές χρησιμοποιούνται για να δημιουργήσουν εκφράσεις που σχετίζονται με αληθείς ή ψευδείς τιμές. Με άλλα λόγια δημιουργούν λογικούς υπολογισμούς. Αντί να δουλεύετε λοιπόν με με αριθμούς, δουλεύετε με καταστάσεις: αληθές ή ψευδές.

Οι τελεστές αυτοί είναι :
 
 
! Not.Δηλώνει τι τιμή δεν περιέχει η μεταβλητή.
&& And. Προσθέτει δύο μεταβλητές.
| | Or. Προσθέτει επίσης μεταβλητές, αλλά μεταχειρίζεται το αποτέλεσμα ελαφρά διαφορετικά. 

Οι τελεστές αυτοί χρησιμοποιούνται για να κάνουν λογικούς υπολογισμούς χειριζόμενοι τα περιεχόμενα μιας μεταβλητής Boolean με διαφορετικούς τρόπους. Ο τελεστής Not ( ! ) παίρνει μια μεταβλητή Boolean και την αλλάζει στην αντίθετή της:

! true αναγνωρίζεται σαν false
! false αναγνωρίζεται σαν true

Παράδειγμα :

var bFirstValue = false
var bCheck = !!bFirstValue

Δηλώσαμε μια μεταβλητή Boolean με το όνομα bFirstValue. Αρχικοποιήσαμε τη μεταβλητή αυτή με τη λογική τιμή false. Στην επόμενη γραμμή όμως μεταβάλαμε αυτή την τιμή. Χρησιμοποιήσαμε τον τελεστή Not μπροστά από από το όνομα της μεταβλητής. Αυτό σημαίνει ''πάρε την τιμή που δεν είναι στη μεταβλητή !bFirstValue!''. Η bFirstValue περιέχει false. Αφού υπάρχουν μόνο δύο δυνατές λογικές τιμές, η τιμή που δεν είναι στη μεταβλητή bFirstValue είναι η true. Χρησιμοποιήσαμε στη συνέχεια τον τελεστή εκχώρησης (=) για να βάλουμε την επιστρεφόμενη τιμή στη μεταβλητή bCheck.

Οι τελεστές And (&&) και Or ( || ) χρησιμοποιούνται για να συνδυάσουν δύο λογικές μεταβλητές. Ο τελεστής And συνδυάζει δύο τιμές με τους παρακάτω τρόπους:

true&&true ισοδυναμεί με true
true&&false ισοδυναμεί με false
false&&false ισοδυναμεί με false

Παράδειγμα :

var bFirstValue = true
var bSecondValue = false
var bThirdValue = true
var bFourthValue = false
var bCheck1 = bFirstValue && bSecondValue
var bCheck2 = bFirstValue && bThirdValue
var bCheck3 = bSecondValue && bFourthValue

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

Ο τελεστής Or συνδυάζει τις τιμές με διαφορετικό τρόπο. Αν λοιπόν μια μόνο τιμή είναι true, αρκεί :

true || true ισοδυναμεί με true
true || false ισοδυναμεί με true
false || false ισοδυναμεί με false

Παράδειγμα :

var bFirstValue = true
var bSecondValue = false
var bCheck = bFirstValue || bSecondValue

Εδώ η μεταβλητή bCheck περιέχει true και όχι false. Όπως βλέπετε η διαφορά έγκειται στο τι συμβαίνει όταν έχετε δύο τιμές που δεν είναι ίδιες. Αν χρησιμοποιείτε And θα πάρετε false. Αν χρησιμοποιείτε Or θα πάρετε true.

Προτεραιότητα τελεστών

Όταν μια έκφραση αξιολογείται υπάρχει συγκεκριμένος τρόπος με τον οποίο γίνεται αυτό.

Παράδειγμα :

var nCostPerItem = 100
var nNumItems = 5
var nTaxPerItem = 10
var nTotal1 = nCostPerItem * nNumItems + nTaxPerItem * nNumItems
var nTotal2 = nCostPerItem * ( nNumItems + nTaxPerItem * nNumItems)

Έχουμε δύο διαφορετικούς υπολογισμούς, έναν που βάζει το αποτέλεσμα στην nTotal1 κι έναν που το βάζει στην nTotal2.Οι δύο υπολογισμοί χρησιμοποιούν τις ίδιες τιμές και στην ίδια σειρά. Όμως οι τιμές τους είναι πολύ διαφορετικές. Η nTotal1 περιέχει 550, ενώ η nTotal2 περιέχει 5500.
Οι εκφράσεις δεν αξιολογούνται απλά, από αριστερά προς τα δεξιά, γιατί μερικές πράξεις έχουν προτεραιότητα έναντι των άλλων. Όπως φανεται από το παραπάνω παράδειγμα, ο τελεστής του πολλαπλασιασμού έχει προτεραιότητα έναντι αυτού της πρόσθεσης.

Μετατροπή τύπου

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

Παράδειγμα :

var sMonth = ''August''
var nYear = 1996
var nDay = 15
var sDate = sMonth + '' '' + nDay + '', '' + nYear

Ο τελεστής + συνδέει τις μεταβλητές και τις σταθερές σε μια συμβολοσειρά και τις βάζει στην sDate, που είναι μια μεταβλητή συμβολοσειράς. Είναι συμβολοσειρά γιατί μια από τις μεταβλητές που παρέχουν τα δεδομένα είναι μεταβλητή συμβολοσειράς .
Επειδή οι τιμές στις nYear και nDay είναι αριθμοί, μετατρέπονται σε συμβολοσειρές πριν ενοποιηθούν με άλλες συμβολοσειρές. Ο αριθμός 1996 στην nYear γίνεται η συμβολοσειρά 1996 και ο αριθμός 15 στην nDay γίνεται η συμβολοσειρά 15. Στοιχεία και αριθμοί αντιμετωπίζονται με διαφορετικό τρόπο από τον υπολογιστή και κατά την μετατροπή τύπου αλλάζει ο τρόπος παρουσίασής τους μέσα στον υπολογιστή.
 
 

Αρχική Σελίδα

Περιεχόμενα JAVASCRIPT

Επόμενο Κεφάλαιο

Προηγούμενο Κεφάλαιο