1. 關(guān)鍵字和保留字
ECMA-262描述了一組具有特定用途的關(guān)鍵字,這些關(guān)鍵字可用于表示控制語(yǔ)句的開(kāi)始或結(jié)束,或者用于執(zhí)行特定操作等。按照規(guī)則,關(guān)鍵字也是語(yǔ)言保留的,不能用作標(biāo)識(shí)符。以下就是ECMAScript的全部關(guān)鍵字:
break case catch continue default delete do new return switch this throw try typeof var void while with
ECMA-262還描述了另外一組不能用作標(biāo)識(shí)符的保留字。盡管保留字在這門(mén)語(yǔ)言中還沒(méi)有任何特定的用途,但它們有可能在將來(lái)被用作關(guān)鍵字。以下是ECMA-262第3版定義的全部保留字:
abstract boolean byte char class const debugger double int interface long native package private protected public short static super synchronized throws transient volatile
在代碼中使用關(guān)鍵字作為標(biāo)識(shí)符在大多數(shù)瀏覽器中都會(huì)導(dǎo)致“Identifier Expected”(缺少標(biāo)識(shí)符)錯(cuò)誤。而使用保留字可能會(huì)也可能不會(huì)導(dǎo)致同樣的錯(cuò)誤,這要視具體的瀏覽器而定。一般來(lái)說(shuō),南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)建議廣大站長(zhǎng)和網(wǎng)站建設(shè)公司技術(shù)人員最好不要使用關(guān)鍵字和保留字作為標(biāo)識(shí)符,以便與ECMAScript未來(lái)的版本保持兼容。
2. 變量
ECMAScript的變量是松散類(lèi)型的,所謂松散類(lèi)型兢是可以用來(lái)保存任何類(lèi)型的數(shù)據(jù)。換句話說(shuō),每個(gè)變量?jī)H僅是一個(gè)用于保存值的占位符而已。定義變量時(shí)要使用var操作符(注意var是一個(gè)關(guān)鍵字),后跟變量名(即一個(gè)標(biāo)識(shí)符),如下所示:
var message;
這行代碼定義了一個(gè)名為message的變量,該變量可以用來(lái)保存任何值(像這樣未經(jīng)過(guò)初始化的變量,會(huì)保存一個(gè)特殊的直-undefined)。ECMAScript也支持直接初始化變量,因此在定義變量的同時(shí)就可以設(shè)置變量的值,如下所示:
var message="hi",
在此,變量message中保存了一個(gè)字符串值”hi"。像這樣初始化變量并不會(huì)把它標(biāo)記為字符串類(lèi)型;初始化的過(guò)程就是給變量賦一個(gè)值那么簡(jiǎn)單。因此,可以在修改變量值的同時(shí)修改值的類(lèi)型,如下所示:
var message="hi";
message = 100; // 有效,但不推薦
在這個(gè)例子中,變量message 一開(kāi)始保存了一個(gè)字符串值”hi”,然后該值又被一個(gè)數(shù)字值100取代。雖然南昌網(wǎng)頁(yè)設(shè)計(jì)公司百恒網(wǎng)絡(luò)技術(shù)人員不建議修改變量所保存值的類(lèi)型,但這種操作在ECMAScript中完全有效。
有一點(diǎn)必須注意,即使用var操作符定義的變量將成為定義該變量的作用域中的局部變量。也就是說(shuō),如果在函數(shù)中使用var定義一個(gè)變量,那么這個(gè)變量在函數(shù)退出后就會(huì)被銷(xiāo)毀,例如:
function test(){
var message="hi";//局部變量
}
test();
alert(message); //undefined
這里,變量message是在函數(shù)中使用var定義的。當(dāng)函數(shù)被調(diào)用時(shí),就會(huì)創(chuàng)建該變量并為其賦值。而在此之后,這個(gè)變量又會(huì)立即被銷(xiāo)毀,因此例子中的下一行代碼就會(huì)導(dǎo)致錯(cuò)誤。不過(guò),可以像下面這樣省略var操作符,從而創(chuàng)建一個(gè)全局變量:
function test(){
message = "hi"; //全局變量
}
test();
alert(message); //"hi"
這個(gè)例子省略了var操作符,因而message就成了全局變量。這樣,只要調(diào)用過(guò)一次test()函數(shù),這個(gè)變量就有了定義,就可以在函數(shù)外部的任何地方被訪問(wèn)到。
可以使用一條語(yǔ)句定義多個(gè)變量,只要像下面這樣把每個(gè)變量(初始化或不初始化均可)用逗號(hào)分隔開(kāi)即可:
var message = "hi",
found = false,
age=29;
這個(gè)例子定義并初始化了3個(gè)變量。同樣由于ECMAScript是松散類(lèi)型的,因而使用不同類(lèi)型初始化變量的操作可以放在一條語(yǔ)句中來(lái)完成。雖然代碼里的換行和變量縮進(jìn)不是必需的,但南昌做網(wǎng)站公司百恒網(wǎng)絡(luò)前臺(tái)開(kāi)發(fā)工程師建議廣大站長(zhǎng)和網(wǎng)站建設(shè)公司技術(shù)人員這樣做可以提高可讀性。
希望對(duì)廣大站長(zhǎng)或網(wǎng)站建設(shè)公司或從事企業(yè)網(wǎng)站建設(shè)的小團(tuán)隊(duì)有所幫助,如對(duì)此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高與廣大站長(zhǎng)和網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn)。