99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

JavaScript學(xué)習(xí)筆記整理(1):詞法結(jié)構(gòu)

2018-06-19 11:57 更新
編程語(yǔ)言的詞法結(jié)構(gòu)是一套基礎(chǔ)性規(guī)則,用來(lái)描述如何使用這門(mén)語(yǔ)言來(lái)編寫(xiě)程序。

1、字符集

JavaScript程序是用Unicode字符集編寫(xiě)的。 1.1 區(qū)分大小寫(xiě) JavaScript是區(qū)分大小寫(xiě)的語(yǔ)言。也就是說(shuō),關(guān)鍵字、變量、函數(shù)名和所有標(biāo)識(shí)符(identifier)都必須采取一致的大小寫(xiě)形式。比如:“name”和“Name”是不同的變量。 1.2 空格、換行符和格式控制符 在JavaScript中,會(huì)忽略程序中標(biāo)識(shí)之間的空格。而對(duì)于換行符,JavaScript在多數(shù)情況下也會(huì)忽略,但有一種情況例外:當(dāng)在return、break、continue語(yǔ)句后添加換行符時(shí),JavaScript會(huì)在換行處添加分號(hào)。 JavaScript可以識(shí)別一些特殊字符:

空格符(\u0020) 水平制表符(\u0009) 換頁(yè)符(\u000C) 換行符(\u000A) 回車符(\u000D)

回車符加換行符在一起被解析為一個(gè)單行結(jié)束符。 1.3 Unicode轉(zhuǎn)義序列 JavaScript定義了一種特殊序列,用6個(gè)ASCII字符來(lái)代表任意16位Unicode內(nèi)碼。這些Unicode轉(zhuǎn)義序列均以\u為前綴,其后跟隨4個(gè)十六進(jìn)制數(shù)(使用數(shù)字以及大寫(xiě)或小寫(xiě)字母A~F表示)

2、 注釋

JavaScript提供了兩種格式的注釋。 單行注釋: 以//開(kāi)頭 多行注釋:放在 /* 和 */之間(可跨行書(shū)寫(xiě),但不能有嵌套注釋)

3、 直接量

直接量:程序中直接使用的數(shù)據(jù)值。比如:

12  //數(shù)字

1.2  //小數(shù)

"hello world"  //字符串

true  //布爾值

/javascript/gi  //正則表達(dá)式直接量

null  //空

4、 標(biāo)識(shí)符和保留字

標(biāo)識(shí)符(identifier)是用來(lái)識(shí)別具體對(duì)象的一個(gè)名稱。 JavaScript語(yǔ)言的標(biāo)識(shí)符對(duì)大小寫(xiě)敏感,所以a和A是兩個(gè)不同的標(biāo)識(shí)符。 標(biāo)識(shí)符命名規(guī)則: 第一個(gè)字符不能為數(shù)字,可以是任意Unicode字母(包括英文字母和其他語(yǔ)言的字母),以及美元符號(hào)($)和下劃線(_) 第二個(gè)字符及后面的字符,除了Unicode字母、美元符號(hào)和下劃線,還可以用數(shù)字。 中文是合法的標(biāo)識(shí)符,可以用作變量名。 JavaScript有一些保留字,不能用作標(biāo)識(shí)符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。 另外,還有三個(gè)詞雖然不是保留字,但是因?yàn)榫哂刑貏e含義,也不應(yīng)該用作標(biāo)識(shí)符:Infinity、NaN、undefined。

5、 可選的分號(hào)

JavaScript使用分號(hào)(;)將語(yǔ)句分隔開(kāi)。 注意:JavaScript并不是在所有換行處都填補(bǔ)分號(hào),只有在缺少了分號(hào)就無(wú)法正確解析代碼的時(shí)候,才會(huì)填補(bǔ)分號(hào)。也可以說(shuō),如果當(dāng)前語(yǔ)句和隨后的非空格字符不能當(dāng)做一個(gè)整體來(lái)解析時(shí),JavaScript就在當(dāng)前語(yǔ)句行結(jié)束處填補(bǔ)分號(hào) 。比如下面代碼:

var a

a

=

3

console.log(a)

JavaScript將其解析為:

var a;a=3;console.log(a);

JavaScript給第一行換行處添加了分號(hào),因?yàn)闆](méi)有分號(hào),JavaScript就無(wú)法解析代碼var a a。第二個(gè)a可以單獨(dú)當(dāng)做一條語(yǔ)句“a;”,但JavaScript并沒(méi)有給第二行結(jié)尾填補(bǔ)分號(hào),因?yàn)樗梢院偷谌袃?nèi)容一起解析成“a=3”。
上面的代碼解析后是沒(méi)有問(wèn)題的,可是沒(méi)有主動(dòng)添加分號(hào),有些時(shí)候會(huì)導(dǎo)致意想不到的情形。比如:

var y=x+f

(a+b).toString()

解析后:

var y=x+f(a+b).toString();

如果當(dāng)前語(yǔ)句和下一行語(yǔ)句無(wú)法合并解析,JavaScript則在第一行后填補(bǔ)分號(hào),這是通用規(guī)則,但有兩個(gè)例外。


第一個(gè)例外是在涉及return、break和continue語(yǔ)句的場(chǎng)景總,如果這三個(gè)關(guān)鍵字后緊跟換行,JavaScript則會(huì)在換行處填補(bǔ)分號(hào)。

例如:

return

true;

JavaScript會(huì)解析成:

return; true;


第二個(gè)例外是在涉及“++”和“--”運(yùn)算符的時(shí)候。

x

++

y

將會(huì)解析成 “x;++y”,而不是“x++;y”


適當(dāng)?shù)奶砑臃痔?hào),可避免意想不到的錯(cuò)誤。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)