[補(bǔ)檔]bilibili播放器特殊彈幕語言-ECMAScript變量
標(biāo)題:ECMAScript變量
轉(zhuǎn)自:docs.bilibili.tv

請使用var 運(yùn)算符聲明變量。
變量名需要遵守一些簡單的規(guī)則。

目錄
1 聲明變量
2 命名變量
3 著名的變量命名規(guī)則
? ? 3.1 Camel 標(biāo)記法
? ??3.2 Pascal 標(biāo)記法
? ??3.3 匈牙利類型標(biāo)記法
4 變量聲明不是必須的

聲明變量
在上一節(jié)中我們講解過,ECMAScript 中的變量是用var 運(yùn)算符(variable 的縮寫)加變量名定義的。例如:
在這個(gè)例子中,聲明了變量test,并把它的值初始化為"hi"(字符串)。由于ECMAScript是弱類型的,所以解釋程序會為test自動創(chuàng)建一個(gè)字符串值,無需明確的類型聲明。
還可以用一個(gè)var 語句定義兩個(gè)或多個(gè)變量:
前面的代碼定義了變量test1,初始值為"hi",還定義了變量test2,初始值為"hello"。
不過用同一個(gè)var語句定義的變量不必具有相同的類型,如下所示:
這個(gè)例子除了(再次)定義test 外,還定義了age,并把它初始化為25。即使test 和age 屬于兩種不同的數(shù)據(jù)類型,在ECMAScript 中這樣定義也是完全合法的。
與Java不同,ECMAScript中的變量并不一定要初始化(它們是在幕后初始化的,將在后面討論這一點(diǎn))。因此,下面這一行代碼也是有效的:
此外,與Java不同的還有變量可以存放不同類型的值。這是弱類型變量的優(yōu)勢。例如,可以把變量初始化為字符串類型的值,之后把它設(shè)置為數(shù)字值,如下所示:
這段代碼將毫無問題地輸出字符串值和數(shù)字值。但是,如前所述,使用變量時(shí),好的編碼習(xí)慣是始終存放相同類型的值。

命名變量
變量名需要遵守兩條簡單的規(guī)則:
第一個(gè)字符必須是字母、下劃線(_)或美元符號($)
余下的字符可以是下劃線、美元符號或任何字母或數(shù)字字符
下面的變量都是合法的:

著名的變量命名規(guī)則
只是因?yàn)樽兞棵恼Z法正確,并不意味著就該使用它們。變量還應(yīng)遵守以下某條著名的命名規(guī)則:
Camel 標(biāo)記法
首字母是小寫的,接下來的字母都以大寫字符開頭。例如:
Pascal 標(biāo)記法
首字母是大寫的,接下來的字母都以大寫字符開頭。例如:
匈牙利類型標(biāo)記法
在以Pascal 標(biāo)記法命名的變量前附加一個(gè)小寫字母(或小寫字母序列),說明該變量的類型。例如,i 表示整數(shù),s 表示字符串,如下所示“
本教程采用了這些前綴,以使示例代碼更易閱讀:
變量聲明不是必須的
ECMAScript 另一個(gè)有趣的方面(也是與大多數(shù)程序設(shè)計(jì)語言的主要區(qū)別),是在使用變量之前不必聲明。例如:
在上面的代碼中,首先,sTest 被聲明為字符串類型的值"hello"。接下來的一行,用變量sTest2 把sTest 與字符串"world" 連在一起。變量sTest2 并沒有用var 運(yùn)算符定義,這里只是插入了它,就像已經(jīng)聲明過它一樣。
ECMAScript 的解釋程序遇到未聲明過的標(biāo)識符時(shí),用該變量名創(chuàng)建一個(gè)全局變量,并將其初始化為指定的值。
這是該語言的便利之處,不過如果不能緊密跟蹤變量,這樣做也很危險(xiǎn)。最好的習(xí)慣是像使用其他程序設(shè)計(jì)語言一樣,總是聲明所有變量。
