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

Καθολικές μεταβλητές

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

varnum = 5; συνάρτηση foo() ( console.log(num); ) foo(); // 5 console.log(num); // 5 ( κονσόλα. log(αριθμός); // 5 )

Τοπικές μεταβλητές

Μια μεταβλητή που δηλώνεται σε μια συνάρτηση ονομάζεται τοπική μεταβλητή. Μια τοπική μεταβλητή είναι διαθέσιμη οπουδήποτε μέσα στο σώμα της συνάρτησης στην οποία δηλώθηκε. Μια τοπική μεταβλητή δημιουργείται κάθε φορά που μια νέα συνάρτηση καλείται και καταστρέφεται κατά την έξοδό της (όταν τελειώνει η συνάρτηση):

Συνάρτηση foo() ( var num = 5; console.log(num); ) foo(); // 5 console.log(typeof num); // απροσδιόριστο

Μια τοπική μεταβλητή έχει προτεραιότητα έναντι μιας καθολικής μεταβλητής με το ίδιο όνομα, που σημαίνει ότι η τοπική μεταβλητή θα χρησιμοποιηθεί μέσα στη συνάρτηση και όχι στην καθολική:

var x = "παγκόσμια"; // Συνάρτηση καθολικής μεταβλητής checkscope() ( var x = "τοπική"; // Τοπική μεταβλητή με το ίδιο όνομα με την καθολική document.write(x); // Χρησιμοποιείται τοπική μεταβλητή, όχι καθολική ) checkscope(); // => "τοπικό" Δοκιμάστε »

Αποκλεισμός μεταβλητών

Μια μεταβλητή που δηλώνεται μέσα σε ένα μπλοκ με λέξη-κλειδί let , ονομάζεται μπλοκ. Μια μεταβλητή μπλοκ είναι διαθέσιμη οπουδήποτε μέσα στο μπλοκ στο οποίο δηλώθηκε:

letnum = 0; ( έστω num = 5; console.log(num); // 5 (έστω num = 10; console.log(num); // 10 ) console.log(num); // 5 ) console.log(num) ; // 0

Εκ νέου ανακοίνωση

Εάν δηλώσετε ξανά μια μεταβλητή με το ίδιο όνομα (στο ίδιο εύρος) χρησιμοποιώντας τη λέξη-κλειδί var, τότε δεν θα συμβεί τίποτα:

Vara = 10; var a; αρχείο καταγραφής κονσόλας (a); // 10

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

Vara = 10; var a = 5; // Ίδιο με το a = 5; αρχείο καταγραφής κονσόλας (a); // 5

Εάν δηλώσετε ξανά μια μεταβλητή με το ίδιο όνομα (στο ίδιο εύρος) χρησιμοποιώντας τη λέξη-κλειδί let, θα εμφανιστεί ένα σφάλμα:

Vara = 10; ας α? // Λάθος.

Αλυσίδα πεδίων

Εξετάστε το ακόλουθο παράδειγμα:

varnum = 5; συνάρτηση foo() ( var num2 = 10; συνάρτηση bar() ( var num3 = 15; ) )

Υπάρχουν τρία πεδία σε αυτόν τον κώδικα: καθολικό εύρος, εύρος συνάρτησης foo() και εύρος συνάρτησης bar(). Η μεταβλητή num και η συνάρτηση foo() ορίζονται στο καθολικό εύρος. Η μεταβλητή num2 και η συνάρτηση bar() ορίζονται στο εύρος της συνάρτησης foo() και η μεταβλητή num από το καθολικό εύρος είναι επίσης διαθέσιμη σε αυτήν. Το εύρος της συνάρτησης bar() περιέχει μία μεταβλητή num3, η οποία είναι διαθέσιμη μόνο μέσα στη συνάρτηση bar(). Στο εύρος της συνάρτησης bar(), οι μεταβλητές από τα άλλα δύο πεδία είναι επίσης προσβάσιμες, επειδή είναι ο μητρικός της. Η αλυσίδα εύρους για αυτό το παράδειγμα φαίνεται στο παρακάτω σχήμα:

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

Η αλυσίδα εμβέλειας έχει παραγγελθεί. Ο διερμηνέας αναζητά την αλυσίδα εύρους για αναγνωριστικά προς τα έξω και όχι προς τα μέσα. Αυτό σημαίνει ότι η αναζήτηση ονόματος ξεκινά από το πεδίο όπου έγινε πρόσβαση στο αναγνωριστικό. Εάν βρεθεί το όνομα του αναγνωριστικού, η αναζήτηση τερματίζεται. Εάν το όνομα δεν μπορεί να βρεθεί στο τρέχον εύρος, η αναζήτηση εκτελείται στο επόμενο (εξωτερικό) πεδίο κ.ο.κ.. Έτσι, θα χρησιμοποιηθεί το αναγνωριστικό από το πεδίο στο οποίο βρέθηκε. Εάν το αναγνωριστικό δεν βρεθεί σε κανένα από τα πεδία, η JavaScript θα δημιουργήσει ένα σφάλμα:

var str = "παγκόσμια"; varnum = 5; συνάρτηση foo() ( var str = "τοπικό"; // Χρήση τοπικής μεταβλητής str num = 10; // Χρήση καθολικής μεταβλητής num // alert(x); // Σφάλμα. Η μεταβλητή x δεν είναι σε κανένα πεδίο εφαρμογής ) foo( ) ; alert(str); // "παγκόσμια" ειδοποίηση(αριθμός); // 10

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

Συνάρτηση foo() ( num = 2; ) foo(); // Δημιουργήθηκε μια νέα καθολική μεταβλητή num alert(num); // 2

Αύξηση διαφημίσεων

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

Εξετάστε το ακόλουθο απόσπασμα κώδικα:

var str = "παγκόσμια"; συνάρτηση foo() ( alert(str); // undefined var str = "local"; alert(str); // "local" ) foo();

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

Συνάρτηση foo() ( var str; // Δήλωση μιας τοπικής μεταβλητής στην αρχή της συνάρτησης alert(str); // Εδώ είναι διαθέσιμη, αλλά δεν έχει αρχικοποιηθεί str = "τοπικό"; // Εδώ είναι αρχικοποιημένη ειδοποίηση( str); // Και εδώ έχει την αναμενόμενη τιμή - "τοπικό")

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

Ειδοποίηση(αριθμός); // undefined var num = 10; ειδοποίηση(αριθμός); // 10

Τι είναι οι καθολικές μεταβλητές: οι μεταβλητές είναι "ορατές" σε οποιοδήποτε σημείο της εκτέλεσης του προγράμματος, οπουδήποτε από μπορούν να διαβαστούν και να αντικατασταθούν.
Συνήθως οι καθολικές μεταβλητές ορίζονται στην αρχή του προγράμματος, έξω από οποιοδήποτε μπλοκ (())
Στην περίπτωση των Js, ορίζονται μετά το σενάριο ή όλες τις συναρτήσεις

γεια = Γεια σου ; //ρυθμίστε την καθολική μεταβλητή και ελέγξτε την
έγγραφο. writeln (->1 + γεια + κάθε ένα
) //->1 Γεια σε όλους

Εαν αληθεύει)
//if(false)
{
var hello = Γεια σου Dolly και ; //Αυτό είναι επίσης παγκόσμιο
κόσμος = κόσμος; //παγκόσμια
var cont = , συνεχίζουμε //global
έγγραφο. writeln (->1.2 + γεια + κόσμος + συνέχεια +
);
//1.2 Γεια σου Dolly και κόσμος, συνεχίζουμε
}
έγγραφο. writeln (->2 + γεια + κόσμος + συνέχεια +
);
//->2 Γεια σου Dolly και κόσμο, συνεχίζουμε


αν αληθεύει παίρνουμε την απάντηση

->1 Γεια σε όλους
->1.2 Γεια σου Dolly και κόσμο, συνεχίζουμε
->2 Γεια σου Ντόλυ και κόσμος, συνεχίζουμε


διαλείμματα εκτέλεσης

Έτσι, αποδεικνύεται ότι η χρήση του var δεν επηρεάζει με κανέναν τρόπο το παγκόσμιο εύρος. Μια μεταβλητή που αναφέρεται σε ένα σενάριο εκτός διαδικασιών θεωρείται καθολική ακόμα κι αν έχει τοποθετηθεί σε παρένθεση () γύρω από ένα if while for block και άλλα πεδία θα παραμείνουν καθολικά ακόμη και μέσα στους βρόχους

Συμπεράσματα, εν συντομία

  • για τις μεταβλητές που χρησιμοποιούνται στο καθολικό εύρος, η παρουσία του var δεν είναι σημαντική.
  • Οι αποκλεισμοί μετά το if while for δεν δημιουργούν τοπικό πεδίο εφαρμογής (όπως κάνουν σε άλλες γλώσσες)
τοπικός μεταβλητές - μεταβλητέςορίζονται μέσα στο εκτελέσιμο μπλοκ (συνάρτηση) και δεν επηρεάζουν άλλες λειτουργίες. Και εξωτερικό περιβάλλον, δηλ. παγκόσμια περιοχή.

αγόρι = Γιάννης;
έκανε = σκοτώνει τον Kenny ; // έτσι έχουμε 2 καθολικές μεταβλητές
συνάρτηση doit()
{
//εκτύπωση έχει ήδη περάσει --1, και αλλάζουμε τα δεδομένα αλλάζουν τα δεδομένα
var boy = Gary ; // δημιουργία τοπικών ρυθμίσεων
έκανε = βοήθησε την Άννυ ; // αλλαγή του καθολικού
;
έγγραφο. έγραψα (--2 + αγόρι + + έκανα +
);
//--2 Ο Gary βοηθά την Annie
;
//τώρα μέσα στη συνάρτηση ορίζουμε τις τοπικές και καθολικές μεταβλητές
var καλό = ήταν καλό παιδί
; //μικρός λοβός!
κακός = του αρέσει ένα κακό κορίτσια
; //παγκόσμια
}
;
έγγραφο. writeln(--1+αγόρι++έκανε+
);
//--1 Ο Τζον σκοτώνει τον Κένι
Κάνε το();
//--2 Ο Gary βοηθά την Annie
έγγραφο. έγραψα (--3 + αγόρι + + έκανα +
);
//--3 Ο Τζον βοηθά την Άννυ
;
Εαν αληθεύει)
//if(!false)
{
έγγραφο. writeln (--4 + καλό );
//εκτέλεση αυτού του μπλοκ θα προκαλέσει σφάλμα.
//Είμαστε πλέον εκτός τοπικού πεδίου
Συναρτήσεις // doit(), άρα για εμάς δίνεται μέσω var
// μεταβλητή καλή απλά δεν υπάρχει
}
έγγραφο. writeln (--5 + κακός);
//--5 του αρέσουν τα κακά κορίτσια


Αποτέλεσμα:

1 Ο Τζον σκοτώνει τον Κένι
--2 Ο Γκάρι βοηθά την Άννι
--3 Ο Τζον βοηθά την Άννυ
--5 του αρέσουν τα κακά κορίτσια


συμπέρασμα

τοπικές μεταβλητές στο javascript

  • Το var λειτουργεί μέσα σε μια συνάρτηση δηλώνοντας μια τοπική μεταβλητή. Αυτό είναι το κύριο καθήκον του.
Συστάσεις και παρατηρήσεις
  • Το Javascript είναι πολύ διαφορετικό από το C ήδη στο ότι μόνο (;) Τοπικές μεταβλητές είναι δυνατές μέσα σε μια συνάρτηση.
  • Η χρήση του var ή η μη χρήση σε καθολικό εύρος εξαρτάται μόνο από εσάς προσωπική εμπειρία. Αλλά για μένα είναι καλύτερα να μην είμαι τεμπέλης. στο perl λέγεται χρήση αυστηρή
>>> για τις μεταβλητές που χρησιμοποιούνται στο καθολικό εύρος, η παρουσία του var δεν είναι σημαντική

Σπουδαίος. Πρώτον, τα vars δεν μπορούν να διαγραφούν (χρησιμοποιώντας το delete). Δεύτερον, η εγκατάστασή τους λαμβάνει χώρα στη "γραμμή μηδέν" (πριν από την εργασία "γραμμή προς γραμμή"), όπου τους εκχωρείται αμέσως η απροσδιόριστη τιμή και μόνο τότε η μεταβλητή μπορεί (ή μπορεί να μην) λάβει μια νέα τιμή:

var glb_1 = 1;
εάν (λάθος) (var glb_2 = 2; glb_3 = 3;)

alert(glb_1) // instantated και ορίστηκε σε 1
alert(glb_2) // instantated και ορίστηκε σε "undefined"
alert(glb_3) // δεν είναι καθόλου μεταβλητή (χωρίς var), σφάλμα κλήσης

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

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

Τι είναι μια μεταβλητή και πώς δημιουργείται;

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

Οι μεταβλητές μπορούν να είναι μεγάλο ποσόκαι όλα πρέπει να είναι με μοναδικό όνομα.

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

Παρεμπιπτόντως, προσπαθήστε από την πρώτη κιόλας μέρα, από τον πρώτο σας κωδικό, να ονομάσετε τα στοιχεία με λογικά και κατανοητά ονόματα. Διότι περαιτέρω, όταν εργάζεστε με βαριά προγράμματα, μετά από κάποιο χρονικό διάστημα δεν θα θυμάστε τι σημαίνει, για παράδειγμα, "aa1" ή "perem3".

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

Διάβασα τη σημειογραφία, τώρα ας επιστρέψουμε στη δήλωση των μεταβλητών.

Για να δημιουργήσετε μια μεταβλητή, πρέπει πρώτα να γράψετε μια λέξη-κλειδί var, ακολουθούμενο από το ίδιο το όνομα. Έτσι φαίνεται:

var text = "Γεια σου, χρήστη!"

Μετά από αυτό, γίνεται πρόσβαση στο κείμενο χωρίς "var":

text = "νέο κείμενο."

Σε αυτήν την περίπτωση, η τιμή θα αντικατασταθεί.

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

1 2 3 4 var text = "Γεια σου, χρήστη!"; ειδοποίηση(κείμενο); // εκτυπώνει "Γεια, χρήστη!" text="Νέο κείμενο!"; ειδοποίηση(κείμενο); // εκτυπώνει "Νέο κείμενο!"

var text = "Γεια σου, χρήστη!"; ειδοποίηση(κείμενο); // εκτυπώνει "Γεια, χρήστη!" text="Νέο κείμενο!"; ειδοποίηση(κείμενο); // εκτυπώνει "Νέο κείμενο!"

Χαρακτηριστικά παγκόσμιων αντικειμένων

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

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

var τιμή = 145; // δημιουργήστε μια καθολική μεταβλητή

alert(window.price); // απάντηση: 145

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

Παγίδες και εύρος

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

function test() ( p = 2; return p; ) alert(p); // undefined p = "σημαντικό κείμενο"; alert(p); // εκτυπώνει το "σημαντικό κείμενο" test(); // καλέστε τη συνάρτηση alert(p); // εκτυπώσεις 2

Αρχικά, στη συνάρτηση δοκιμής, αρχικοποίησα μια τοπική μεταβλητή με τιμή 2 και στη συνέχεια δημιούργησα μια καθολική μεταβλητή κειμένου που αποθηκεύει ορισμένα σημαντικά δεδομένα.

Και εδώ εμφανίζεται αυτό το «υποβρύχιο μπλοκ».

Πρώτον, λόγω του γεγονότος ότι χρησιμοποίησα τη δημιουργία στοιχείων σύμφωνα με τους κανόνες του ξεπερασμένου προτύπου JavaScript, όλες οι μεταβλητές "p" δημιουργήθηκαν μόνο κατά τη στιγμή της ανάθεσης (όταν χρησιμοποιείται η οδηγία var, οι μεταβλητές δημιουργούνται αμέσως με την τιμή απροσδιόριστο, και κατά την αρχικοποίηση μέσω της τιμής «=» αντικαθίσταται.

Δεύτερον, σε αυτήν την περίπτωση, το js χρησιμοποιεί μια υπάρχουσα ή δημιουργεί μια νέα καθολική μεταβλητή για να εκχωρήσει μια τιμή σε στοιχεία που δημιουργήθηκαν έμμεσα. Επομένως, στο παραπάνω παράδειγμα, μετά την κλήση της συνάρτησης δοκιμής, η τιμή του καθολικού "p" αντικαταστάθηκε.

Χρησιμοποιείτε πάντα τη λέξη-κλειδί var για να αποφύγετε τη συντριβή. Στη συνέχεια, όλα τα αντικείμενα θα δηλωθούν ρητά και θα δημιουργηθούν νέα.

Εδώ είναι το διορθωμένο παράδειγμα:

function test() ( var p = 2; alert (p); return p; ) alert(p); // undefined var p = "σημαντικό κείμενο"; alert(p); // εκτυπώνει το "σημαντικό κείμενο" test(); // καλέστε τη συνάρτηση, σε αυτήν την περίπτωση θα εκτυπώσει 2 ειδοποιήσεις(p); // εκτύπωση "σημαντικού κειμένου"

Τώρα ο κώδικας λειτουργεί σωστά. Όπως μπορείτε να δείτε, το εύρος του τοπικού "p" είναι εντός του πεδίου εφαρμογής της συνάρτησης δοκιμής, ενώ το εύρος του καθολικού βρίσκεται στον υπόλοιπο κώδικα.

Λίγα λόγια για τις σταθερές

Όπως όλες οι άλλες γλώσσες προγραμματισμού, η JavaScript έχει σταθερές. Για όσους δεν ξέρουν τι είναι αυτό, θα επισυνάψω έναν ορισμό.

Η σταθερά είναι ένας τύπος μεταβλητής της οποίας η τιμή δεν αλλάζει.

Σύμφωνα με τους κανόνες σύνταξης στο js, το όνομά τους γράφεται πάντα με πεζά (κεφαλαία) γράμματα. Για παράδειγμα,

var MAIN_COLOR = "#fff"

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

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

Οι μεταβλητές χρησιμεύουν ως «δοχεία» για την αποθήκευση πληροφοριών.

Θυμάστε τη Σχολική Άλγεβρα;

Θυμάστε τη σχολική άλγεβρα; x=5, y=6, z=x+y

Θυμάστε ότι ένα γράμμα (όπως το x) θα μπορούσε να χρησιμοποιηθεί για την αποθήκευση μιας τιμής (όπως το 5) και ότι θα μπορούσατε να χρησιμοποιήσετε τις παραπάνω πληροφορίες για να υπολογίσετε ότι η τιμή του z είναι 11;

Αυτά τα γράμματα λέγονται μεταβλητέςκαι οι μεταβλητές μπορούν να χρησιμοποιηθούν για την αποθήκευση τιμών (x=5) ή εκφράσεων (z=x+y).

Μεταβλητές JavaScript

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

Η μεταβλητή μπορεί να έχει ένα σύντομο όνομα όπως x ή ένα πιο περιγραφικό όνομα όπως carname (όνομα αυτοκινήτου).

Κανόνες για ονόματα μεταβλητών JavaScript:

  • Τα ονόματα των μεταβλητών κάνουν διάκριση πεζών-κεφαλαίων (y και Y είναι δύο διαφορετικές μεταβλητές)
  • Τα ονόματα των μεταβλητών πρέπει να ξεκινούν με γράμμα ή κάτω παύλα

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

Παράδειγμα

Η τιμή μιας μεταβλητής μπορεί να αλλάξει κατά την εκτέλεση του σεναρίου. Μπορείτε να ανατρέξετε σε μια μεταβλητή με το όνομά της για να εμφανίσετε ή να αλλάξετε την τιμή της.

Δήλωση (Δημιουργία) μεταβλητών JavaScript

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

Δηλώνετε μεταβλητές JavaScript με μια λέξη-κλειδί var:

Μετά την εκτέλεση των παραπάνω προτάσεων, η μεταβλητή Χθα περιέχει την τιμή 5 , Και όνομα αυτοκινήτουθα περιέχει την τιμή Mercedes.

Σχόλιο:Όταν αναθέτετε τιμή κειμένουμεταβλητή, περικλείστε την σε εισαγωγικά.

Σχόλιο:Εάν δηλώσετε ξανά μια μεταβλητή, δεν θα χάσει την αξία της.

Τοπικές μεταβλητές JavaScript

Η μεταβλητή δηλώνεται μέσα Λειτουργίες JavaScriptγίνεται ΤΟΠΙΚΟΣκαι θα είναι διαθέσιμο μόνο σε αυτήν τη λειτουργία. (η μεταβλητή έχει τοπικό πεδίο εφαρμογής).

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

Οι τοπικές μεταβλητές καταστρέφονται κατά την έξοδο της συνάρτησης.

Θα μάθετε περισσότερα για τις συναρτήσεις σε μεταγενέστερα μαθήματα JavaScript.

Καθολικές μεταβλητές JavaScript

Μεταβλητές που δηλώνονται εκτός της συνάρτησης γίνονται ΠΑΓΚΟΣΜΙΑ, και όλα τα σενάρια και οι λειτουργίες της σελίδας έχουν πρόσβαση σε αυτά.

Οι καθολικές μεταβλητές καταστρέφονται όταν κλείνετε τη σελίδα.

Εάν δηλώσετε μια μεταβλητή χωρίς να χρησιμοποιήσετε "var", η μεταβλητή γίνεται πάντα ΠΑΓΚΟΣΜΙΑ.

Εκχώρηση τιμών σε μη δηλωμένες μεταβλητές JavaScript

Εάν αντιστοιχίσετε τιμές σε μεταβλητές που δεν έχουν ακόμη δηλωθεί, οι μεταβλητές θα δηλωθούν αυτόματα ως καθολικές μεταβλητές.

Αυτές οι προτάσεις:

Θα μάθετε περισσότερα για τους τελεστές στο επόμενο μάθημα JavaScript.

Μεταβλητές και σταθερές σε JavaScript. Δήλωση μεταβλητών και εκχώρηση τιμών σε αυτές. Μεταβλητές καθολικές και τοπικές. Χρησιμοποιώντας σταθερές.

Δήλωση μεταβλητών σε JavaScript

Τα ονόματα μεταβλητών στο JavaScript μπορεί να αποτελούνται από γράμματα, αριθμούς, το σύμβολο $ και το σύμβολο _ και το όνομα της μεταβλητής δεν μπορεί να ξεκινά με έναν αριθμό. Λάβετε υπόψη ότι η JavaScript κάνει διάκριση πεζών-κεφαλαίων και η a1 και η A1 είναι διαφορετικές μεταβλητές. Το κυριλλικό δεν συνιστάται, αν και είναι δυνατό.
Οι μεταβλητές στο JavaScript δηλώνονται με τη λέξη-κλειδί var:

Var Peremennaya_1 var Peremennaya_2

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

Εκχώρηση τιμής σε μεταβλητές

Εκχώρηση τιμής σε δηλωμένες μεταβλητές στο JavaScript:

Peremennaya_1 = 25 Peremennaya_2 = "Το εκχωρημένο κείμενο περικλείεται σε ίσια εισαγωγικά"

Μπορείτε να εκχωρήσετε μια τιμή σε μεταβλητές αμέσως μετά τη δήλωση:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Εσωκλείουμε το κείμενο που έχει εκχωρηθεί σε ευθεία εισαγωγικά"

Η τιμή μιας μεταβλητής στο JavaScript μπορεί να αλλάξει κατά την εκτέλεση του προγράμματος. Όταν γράφετε κείμενο σε μια μεταβλητή, πρέπει να περικλείεται σε ευθεία εισαγωγικά.

Μεταβλητές τοπικές και καθολικές

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

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

Σταθερές σε JavaScript

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

Var DRUG_CHELOVEKA = "Σκύλος"

Το δεδομένο παράδειγμα μιας σταθεράς δεν είναι αρκετά πλήρες, καθώς η λέξη "Σκύλος" είναι ήδη εύκολο να θυμηθεί και να εισαχθεί όπου χρειάζεται. Μπορείτε να χρησιμοποιήσετε σταθερές στο JavaScript για να γράψετε και να επικολλήσετε πιο σύνθετες τιμές, όπως κώδικες που είναι δύσκολο να θυμάστε, σύνολα χαρακτήρων, μεγάλο κείμενο, διευθύνσεις ιστού, διευθύνσεις ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ, τηλεφωνικοί αριθμοί, διαφορετικούς συντελεστές.

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