什么是 JScript?
JScript 是 Microsoft 公司對(duì) ECMA 262 語(yǔ)言規(guī)范(ECMAScript 編輯器 3)的一種實(shí)現(xiàn)。除了少數(shù)例外(為了保持向后兼容),JScript 完全實(shí)現(xiàn)了 ECMA 標(biāo)準(zhǔn)。本概述的目的就是引導(dǎo)您學(xué)習(xí)使用 JScript。
使用 JScript
JScript 是一種解釋型的、基于對(duì)象的腳本語(yǔ)言。盡管與 C++ 這樣成熟的面向?qū)ο蟮恼Z(yǔ)言相比,JScript 的功能要弱一些,但對(duì)于它的預(yù)期用途而言,JScript 的功能已經(jīng)足夠大了。
JScript 不是其他語(yǔ)言的精簡(jiǎn)版(例如,它只是與 Java 有點(diǎn)模糊而間接的關(guān)系),也不是任何事物的簡(jiǎn)化。不過(guò),它有其局限性。例如,您不能使用該語(yǔ)言來(lái)編寫(xiě)?yīng)毩⑦\(yùn)行的應(yīng)用程序,并且沒(méi)有對(duì)讀寫(xiě)文件的內(nèi)置支持。此外,JScript 腳本只能在某個(gè)解釋器或“宿主”上運(yùn)行,如 Active Server Pages(ASP)、Internet 瀏覽器或者 Windows 腳本宿主。
JScript 是一種寬松類型的語(yǔ)言。寬松類型意味著您不必顯式定義變量的數(shù)據(jù)類型。事實(shí)上 JScript 更進(jìn)一步。您無(wú)法在JScriot上明確地定義數(shù)據(jù)類型。此外,在大多數(shù)情況下,JScript 將根據(jù)需要自動(dòng)進(jìn)行轉(zhuǎn)換。例如,如果將一個(gè)數(shù)值添加到由文本組成的某項(xiàng)(一個(gè)字符串),該數(shù)值將被轉(zhuǎn)換為文本。
編寫(xiě) JScript 代碼
與其他許多編程語(yǔ)言一樣, Microsoft JScript 是用文本方式編寫(xiě)的,并被組織成為語(yǔ)句、由相關(guān)的語(yǔ)句集組成的塊、以及注釋。在一條語(yǔ)句內(nèi)可以使用變量、比如字符串和數(shù)字(稱為“文字”)的立即數(shù)、以及表達(dá)式。
語(yǔ)句
JScript 程序是語(yǔ)句的集合。一條 Jscript 語(yǔ)句相當(dāng)于英語(yǔ)中的一個(gè)完整句。Jscript 語(yǔ)句將表達(dá)式組合起來(lái),完成一個(gè)任務(wù)。
一條語(yǔ)句由一個(gè)或多個(gè)表達(dá)式、關(guān)鍵字或者運(yùn)算符(符號(hào))組成。典型地,一條語(yǔ)句寫(xiě)一行,盡管一條語(yǔ)句可以超過(guò)兩行或更多行。兩條或更多條語(yǔ)句也可以寫(xiě)在同一行上,語(yǔ)句之間用分號(hào)“;”隔開(kāi)。通常,每一新行開(kāi)始一條新語(yǔ)句。不過(guò)顯式地終止語(yǔ)句是一個(gè)好方法。這是用分號(hào) (;)來(lái)實(shí)現(xiàn)的,分號(hào)是 JScript 語(yǔ)句的終止字符。下面給出 Jscript 語(yǔ)句的兩隔示例。
aBird = "Robin"; //將文本“Robin”賦值給變量 aBird
var today = new Date(); // 將今天的日期賦值給變量 today
用大括號(hào)({})括起來(lái)的一組 JScript 語(yǔ)句稱為一個(gè)語(yǔ)句塊。分組到一個(gè)語(yǔ)句塊中的語(yǔ)句通?僧(dāng)作單條語(yǔ)句處理。這就是說(shuō)在 JScript 期望有一條單個(gè)語(yǔ)句的大多數(shù)地方可以使用語(yǔ)句塊。應(yīng)該注意以 for 和 while 打頭的循環(huán)語(yǔ)句是例外情況。注意,語(yǔ)句塊中的原始語(yǔ)句以分號(hào)結(jié)束,但語(yǔ)句塊本身并不以分號(hào)結(jié)束。
通常,在函數(shù)和條件語(yǔ)句中使用語(yǔ)句塊。注意,Jscript 與 C++ 以及其他某些語(yǔ)言不同,它不認(rèn)為語(yǔ)句塊是一個(gè)新的范圍;只有函數(shù)創(chuàng)建新范圍。在下面的示例中,第一條語(yǔ)句開(kāi)始定義一個(gè)函數(shù),該函數(shù)包含一個(gè)五條語(yǔ)句組成的語(yǔ)句塊。語(yǔ)句塊后的三條語(yǔ)句沒(méi)有用大括號(hào)括起來(lái);這些語(yǔ)句不是一個(gè)語(yǔ)句塊,所以就不是函數(shù)定義的一部分。
function convert(inches) {
feet = inches / 12; // 這五條語(yǔ)句屬于一個(gè)語(yǔ)句塊。
miles = feet / 5280;
nauticalMiles = feet / 6080;
cm = inches * 2.54;
meters = inches / 39.37;
}
km = meters / 1000; // 這三條語(yǔ)句不在語(yǔ)句塊內(nèi)。
kradius = km;
mradius = miles;