Προγραμματισμός

Επωφεληθείτε από μεταβλητές που καθορίζονται από το χρήστη σε JavaScript

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

Οι μεταβλητές είναι προσωρινοί κάτοχοι πληροφοριών. Μπορούν να κρατήσουν:

  • Αριθμητικές τιμές ("αριθμοί") - αριθμοί που μπορούν να προστεθούν μαζί. Παράδειγμα: 2 + 2 αποτελέσματα σε 4
  • Συμβολοσειρές χαρακτήρων - μια συλλογή κειμένου, όπως "JavaScript" ή "Το όνομά μου είναι Mudd"
  • Αληθινές / ψευδείς τιμές - το Boolean true και false
  • Αντικείμενα - JavaScript ή αντικείμενα που καθορίζονται από το χρήστη (οι μεταβλητές JavaScript μπορούν να διατηρήσουν μερικά άλλα είδη δεδομένων, αλλά αυτά είναι μακράν οι πιο συνηθισμένοι τύποι)

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

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

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

VariableName = τιμή

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

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

Οι χρήστες Pascal μπορεί να μπουν στον πειρασμό να δημιουργήσουν τη μεταβλητή ανάθεση χρησιμοποιώντας: =. Λάβετε υπόψη ότι αυτή η σύνταξη δεν υποστηρίζεται σε JavaScript.

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

Περιεχόμενα που τοποθετούνται σε μεταβλητές JavaScript

Αριθμοί σε μεταβλητές

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

MyVar = 10;

Συμβολοσειρές σε μεταβλητές

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

"Είμαι μια συμβολοσειρά"

ή

"Είμαι μια συμβολοσειρά"

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

MyVar = "Αυτό είναι JavaScript";

Δυαδικές τιμές σε μεταβλητές

Υπάρχουν δύο τιμές Boolean: true και false. Ορισμένες γλώσσες προγραμματισμού δεν έχουν ξεχωριστό σύνολο τιμών Boolean και αντ 'αυτού χρησιμοποιούν 0 για false, και 1 ή -1 (ή οποιαδήποτε άλλη μη μηδενική τιμή) για true. Το JavaScript μπορεί να χρησιμοποιήσει αυτούς τους αριθμούς για να αντιπροσωπεύει το αληθινό και το ψευδές, αλλά, επιπλέον, διατηρεί τις λέξεις "αληθές" και "ψευδές" για να σημαίνει το Boolean true και false Μπορείτε να θεωρήσετε ότι οι αληθινές και ψευδείς τιμές Boolean είναι ισοδύναμες με on / off ή ναι / όχι. Για να αντιστοιχίσετε μια τιμή Boolean σε μια μεταβλητή, παρέχετε μόνο τη λέξη true ή false, χωρίς εισαγωγικά. Ακολουθεί ένα παράδειγμα:

MyVar = true;

Αντικείμενα σε μεταβλητές

Οι μεταβλητές μπορούν να περιέχουν αντικείμενα, συμπεριλαμβανομένων αντικειμένων JavaScript. Υπάρχουν βασικά δύο είδη μεταβλητών αντικειμένων:

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

  • Οι μεταβλητές που περιέχουν αντικείμενα που καθορίζονται από τον χρήστη αντιπροσωπεύουν το πραγματικό αντικείμενο. Πραγματοποιήστε μια αλλαγή στο αντικείμενο της μεταβλητής και αλλάζετε μόνο αυτό το αντικείμενο.

Για να αντιστοιχίσετε ένα αντικείμενο JavaScript σε μια μεταβλητή, δώστε το όνομα του αντικειμένου, όπως στο:

MyVar = πλοηγός;

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

MyVar = νέο myObject ();

SUBHEAD Όρια μεταβλητών ονόματος

Όσον αφορά τα ονόματα που μπορείτε να δώσετε μεταβλητές, το JavaScript προσφέρει μεγάλο γεωγραφικό πλάτος. Οι μεταβλητές JavaScript μπορεί να έχουν σχεδόν απεριόριστο μήκος, αν και για πρακτικούς λόγους πιθανότατα θα διατηρήσετε τα ονόματα των μεταβλητών σας κάτω από 10 ή 15 χαρακτήρες. Τα μικρότερα ονόματα μεταβλητών βοηθούν το JavaScript να εκτελεί το πρόγραμμα πιο γρήγορα. Λάβετε υπόψη τα ακόλουθα κατά την ονομασία των μεταβλητών σας:

  • Τα ονόματα των μεταβλητών πρέπει να αποτελούνται μόνο από γράμματα - χωρίς κενά. Μπορείτε να χρησιμοποιήσετε αριθμούς εφ 'όσον το όνομα δεν ξεκινά με ένα ψηφίο. Για παράδειγμα, το MyVar1 είναι αποδεκτό, αλλά το 1MyVar δεν είναι.

  • Μην χρησιμοποιείτε χαρακτήρες στίξης σε μεταβλητά ονόματα. Εξαίρεση: ο χαρακτήρας υπογράμμισης (_). Δηλαδή, η μεταβλητή My_Var είναι αποδεκτή, αλλά το My * Var δεν είναι. Οι μεταβλητές μπορούν να ξεκινήσουν με τον χαρακτήρα υπογράμμισης.

  • Τα μεταβλητά ονόματα είναι πεζά. Η μεταβλητή MyVar είναι μια σαφώς διαφορετική μεταβλητή από το myVar, το myvar και άλλες παραλλαγές.

Κατανόηση των "χαλαρών" τύπων μεταβλητών δεδομένων της JavaScript

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

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

Χρησιμοποιώντας τη δήλωση var για να εκχωρήσετε μια μεταβλητή

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

var MyVar = "Αυτή είναι μια μεταβλητή";

Μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση var με το όνομα της μεταβλητής για να δηλώσετε τη μεταβλητή αλλά να μην ορίσετε μια τιμή για αυτήν:

var MyVar;

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

Περιορισμοί μήκους συμβολοσειράς

Η JavaScript επιβάλλει ένα όριο 254 χαρακτήρων για κάθε εκχώρηση μεταβλητής συμβολοσειράς στο πρόγραμμά σας. Εάν υπερβείτε το όριο των 254 χαρακτήρων, το JavaScript αποκρίνεται με ένα μήνυμα σφάλματος "Unterminated string literal". (Σημείωση: Αυτό είναι ουσιαστικά ένα όριο JavaScript στο Netscape 2.0x. Είναι καλή ιδέα να το παρατηρήσετε, καθώς δεν έχουν υιοθετήσει όλοι οι χρήστες το Netscape 3.0.)

Μπορείτε να δημιουργήσετε μεγαλύτερες συμβολοσειρές "συνδέοντας" μαζί - αρκεί κάθε κομμάτι να αποτελείται από 254 χαρακτήρες ή λιγότερους. Αφού εκχωρήσετε μια συμβολοσειρά σε κάθε μεταβλητή, τις συνδυάζετε χρησιμοποιώντας τον χαρακτήρα +. Αυτό ονομάζεται «συνένωση». Το παρακάτω παράδειγμα δείχνει πώς λειτουργεί η συνένωση:

MyVar = "Αυτή είναι η αρχή" + του τρόπου με τον οποίο "+" μπορείτε να δημιουργήσετε χορδές ";

Κάθε μεμονωμένο τμήμα συμβολοσειράς - που ορίζεται από το κείμενο εντός των εισαγωγικών - μπορεί να αποτελείται από έως 254 χαρακτήρες. Για να δημιουργήσετε μια συμβολοσειρά μεγαλύτερη από 254 χαρακτήρες, απλώς προσθέστε περισσότερα τμήματα. Μια άλλη προσέγγιση είναι η δημιουργία συμβολοσειρών χρησιμοποιώντας το χειριστή ανάθεσης + =, ως εξής:

MyVar = "Αυτή είναι η αρχή" MyVar + = "του τρόπου με τον οποίο" το MyVar + = μπορεί να δημιουργήσει χορδές "

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

Κατανόηση του "εύρους" των μεταβλητών

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

  • Οι μεταβλητές που ορίζονται έξω από μια συνάρτηση είναι διαθέσιμες σε οποιαδήποτε συνάρτηση μέσα στο σενάριο, αρκεί όλες οι μεταβλητές να ορίζονται στο σενάριο του ίδιου εγγράφου HTML. Αυτές αναφέρονται ως καθολικές μεταβλητές.

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

  • Οι μεταβλητές που ορίζονται μέσα σε μια συνάρτηση με τη δήλωση var είναι "τοπικές" μόνο σε αυτήν τη συνάρτηση. Αυτές αναφέρονται ως τοπικές μεταβλητές.

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

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

Ακολουθεί ένα παράδειγμα που το αποδεικνύει. Όταν κάνετε κλικ στο κουμπί, το σενάριο εμφανίζει τρία πλαίσια ειδοποίησης. Τα παρακάτω περιγράφουν τι συμβαίνει όταν κάνετε κλικ στο κουμπί:

  • Η JavaScript καλεί το FirstFunction, το οποίο εκχωρεί μια τιμή 1 σε μια τοπική μεταβλητή που ονομάζεται MyVar. Εμφανίζεται το περιεχόμενο του MyVar.

  • Η JavaScript καλεί secondFunction, η οποία εκχωρεί μια τιμή 2 σε μια τοπική μεταβλητή, που ονομάζεται επίσης MyVar. Εμφανίζονται τα περιεχόμενα του MyVar.

  • Το JavaScript επιστρέφει στο firstFunction, όπου τα περιεχόμενα του MyVar εμφανίζονται ξανά. Το αποτέλεσμα είναι 1, που είναι η τιμή του MyVar local to firstFunction.

Παραπομπές μεταβλητών σε άλλα φορτωμένα έγγραφα

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

winname.varname

όπου winname είναι το όνομα του εγγράφου και όνομαείναι το όνομα της μεταβλητής. Περισσότερα για τα ονόματα εγγράφων σε λίγο.

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

mydoc.MyVar = 1;

Ο παρακάτω κώδικας εκχωρεί την τιμή μιας τοπικής μεταβλητής MyVar στο παράθυρο mydoc.

VarInThisDoc = mydoc.MyVar;

Από πού προέρχονται τα ονόματα για τα παράθυρα; Όλα εξαρτώνται από τον τρόπο χρήσης των παραθύρων.

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

newwindow = window.open ("", "NewWindow"); // επαναλάβετε αυτό για Mac / X Netscape 2.0 newwindow.creator = self;

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

creator.MyVar;

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

newwindow = window.open ("", "NewWindow");

Τώρα ανατρέξτε σε αυτήν τη μεταβλητή χρησιμοποιώντας τη σύνταξη:

newwindow.MyVar;

Για να χρησιμοποιήσετε μια μεταβλητή που ορίζεται στο frameset - δηλαδή, το έγγραφο που περιέχει

tag - αναφέρετέ το ως γονικό. Ακολουθεί ένα παράδειγμα:

γονέας.MyVar;

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

Γκόρντον Μακκόμπις συγγραφέας, σύμβουλος και λέκτορας. Έχει γράψει 50 βιβλία και πάνω από χίλια άρθρα περιοδικών κατά τη διάρκεια των 20 ετών ως επαγγελματίας συγγραφέας. Έχουν εκτυπωθεί περισσότερα από ένα εκατομμύριο αντίτυπα των βιβλίων του. Ο Γκόρντον γράφει επίσης μια εβδομαδιαία κοινοπρακτική στήλη εφημερίδων σε υπολογιστές, προσεγγίζοντας αρκετά εκατομμύρια αναγνώστες παγκοσμίως. Το τελευταίο βιβλίο του Γκόρντον είναι το βιβλίο πηγής JavaScript, διαθέσιμο από το Wiley Computer Publishing.

Μάθετε περισσότερα σχετικά με αυτό το θέμα

  • Τεκμηρίωση του Netscape για JavaScript

    //home.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html

  • JavaScript και cookie

    //www.hidaho.com/cookies/cookie.txt

  • Παράδειγμα μεταβλητών και πλαισίων JavaScript

    //home.netscape.com/comprod/products/navigator/version_2.0/script/script_info/tutorial/main.htm

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

    //www.hidaho.com/colorcenter/

Αυτή η ιστορία, "Εκμεταλλευτείτε τις μεταβλητές που καθορίζονται από το χρήστη σε JavaScript" δημοσιεύτηκε αρχικά από την JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found