Μεταβλητές του ECMAScript

请使用 var 运算符声明变量。

变量名需要遵守一些简单的规则。

声明变量

在上一节中我们讲解过,ECMAScript 中的变量是用 var 运算符(variable 的缩写)加变量名定义的。例如:

var test = "hi";

在这个例子中,声明了变量 test,并把它的值初始化为 "hi"(字符串)。由于 ECMAScript 是弱类型的,所以解释程序会为 test 自动创建一个字符串值,无需明确的类型声明

还可以用一个 var 语句定义两个或多个变量:

var test1 = "hi", test2 = "hello";

前面的代码定义了变量 test1,初始值为 "hi",还定义了变量 test2,初始值为 "hello"。

不过用同一个 var 语句定义的变量不必具有相同的类型,如下所示:

var test = "hi", age = 25;

这个例子除了(再次)定义 test 外,还定义了 age,并把它初始化为 25。即使 test 和 age 属于两种不同的数据类型,在 ECMAScript 中这样定义也是完全合法的。

În contrast cu Java, variabilele ECMAScript nuΔεν είναι απαραίτητο να�始化(επιτίθενται αργότερα, θα συζητηθεί αυτό αργότερα). Επομένως, η παρακάτω γραμμή κώδικα είναι επίσης έγκυρη:

var test;

Επιπλέον, σε αντίθεση με το Java, οι μεταβλητέςΜπορεί να αποθηκεύσει τιμές διαφορετικών τύπωνΑυτό είναι το πλεονέκτημα των 弱ορισμένου τύπου μεταβλητών. Για παράδειγμα, μπορείτε να�始化 τη μεταβλητή ως τιμή τύπου字符串 και στη συνέχεια να την ορίσετε ως τιμή αριθμού, όπως παρακάτω:

var test = "hi";
alert(test);
test = 55;
alert(test);

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

Ονοματοδοσία μεταβλητών

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

  • Ο πρώτος χαρακτήρας πρέπει να είναι χαρακτήρας αλφαβήτου, υπογράμμωση (_), ή σύμβολο δολαρίου ($)
  • Οι υπόλοιποι χαρακτήρες μπορούν να είναι υπογράμμωση (_), σύμβολο δολαρίου ($) ή οποιοσδήποτε χαρακτήρας αλφαβήτου ή αριθμητικός χαρακτήρας

Τα παρακάτω ονόματα μεταβλητών είναι νόμιμα:

var test;
var $test;
var $1;
var _$te$t2;

Γνωστά πρότυπα ονοματοδοσίας μεταβλητών

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

Camel σημειώσεις

Η πρώτη κεφαλή είναι μικρή, και οι επόμενες κεφαλίδες είναι μεγάλες. Για παράδειγμα:

var myTestValue = 0, mySecondValue = "hi";

Pascal σημειώσεις

Η πρώτη κεφαλή είναι μεγάλη, και οι επόμενες κεφαλίδες είναι μεγάλες. Για παράδειγμα:

var MyTestValue = 0, MySecondValue = "hi";

TypeScript σημειώσεις

Προσθέστε μια μικρή πεζή κεφαλή (ή σειρά πεζών κεφαλίδων) μπροστά από τις μεταβλητές που ονομάζονται με Pascal σημειώσεις, για να δείξετε τον τύπο της μεταβλητής. Για παράδειγμα, i για ακέραιους, s για strings, όπως παρακάτω:

var iMyTestValue = 0, sMySecondValue = "hi";

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

Τύπος Πρόθεμα Παράδειγμα
Σειρά a aValues
Boolean b bFound
Περιττό αριθμητικό f fValue
Σύστημα fn fnMethod
Εκδοχή (αριθμός) i iValue
Οντότητα o oType
Αφηγηματική έκφραση re rePattern
String s sValue
Τύπος μεταβλητής (μπορεί να είναι οποιαδήποτε τύπος) v vValue

Η δήλωση μεταβλητών δεν είναι απαραίτητη

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

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

Στο παραπάνω κώδικα, πρώτα, η sTest δηλώνεται ως τιμή字符串 "hello". Στη συνέχεια, η γραμμή, χρησιμοποιεί τη μεταβλητή sTest2 για να συνδυάσει τη sTest με τη字符串 "world". Η μεταβλητή sTest2 δεν έχει οριστεί με τον επαγγελματία var, εδώ είναι απλώς εισάγεται όπως αν είχε ήδη δηλωθεί.

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

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