ecmascript使用變數不需要宣告。在ecmascript中,使用變數之前不必宣告,變數宣告不是必須的;原因:ECMAScript的解釋程式遇到未宣告過的識別符號時,會用該變數名建立一個全域性變數,並將其初始化為指定的值。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
變數名需要遵守一些簡單的規則。
宣告變數
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 中這樣定義也是完全合法的。
與 Java 不同,ECMAScript 中的變數並不一定要初始化(它們是在幕後初始化的,將在後面討論這一點)。因此,下面這一行程式碼也是有效的:
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";
匈牙利型別標記法
在以 Pascal 標記法命名的變數前附加一個小寫字母(或小寫字母序列),說明該變數的型別。例如,i 表示整數,s 表示字串,如下所示「
var iMyTestValue = 0, sMySecondValue = "hi";
本教學採用了這些字首,以使範例程式碼更易閱讀:
型別 | 字首 | 範例 |
---|---|---|
陣列 | a | aValues |
布林型 | b | bFound |
浮點型(數位) | f | fValue |
函數 | fn | fnMethod |
整型(數位) | i | iValue |
物件 | o | oType |
正規表示式 | re | rePattern |
字串 | s | sValue |
變型(可以是任何型別) | v | vValue |
ECMAScript 另一個有趣的方面(也是與大多數程式設計語言的主要區別),是在使用變數之前不必宣告。例如:
var sTest = "hello "; sTest2 = sTest + "world"; alert(sTest2);
在上面的程式碼中,首先,sTest 被宣告為字串型別的值 "hello"。接下來的一行,用變數 sTest2 把 sTest 與字串 "world" 連在一起。變數 sTest2 並沒有用 var 運運算元定義,這裡只是插入了它,就像已經宣告過它一樣。
ECMAScript 的解釋程式遇到未宣告過的識別符號時,用該變數名建立一個全域性變數,並將其初始化為指定的值。
這是該語言的便利之處,不過如果不能緊密跟蹤變數,這樣做也很危險。最好的習慣是像使用其他程式設計語言一樣,總是宣告所有變數。
【相關推薦:】
以上就是ecmascript使用變數需宣告嗎的詳細內容,更多請關注TW511.COM其它相關文章!