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

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

1、字符集

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

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

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

2、 注釋

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

3、 直接量

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

12  //數(shù)字

1.2  //小數(shù)

"hello world"  //字符串

true  //布爾值

/javascript/gi  //正則表達式直接量

null  //空

4、 標識符和保留字

標識符(identifier)是用來識別具體對象的一個名稱。 JavaScript語言的標識符對大小寫敏感,所以a和A是兩個不同的標識符。 標識符命名規(guī)則: 第一個字符不能為數(shù)字,可以是任意Unicode字母(包括英文字母和其他語言的字母),以及美元符號($)和下劃線(_) 第二個字符及后面的字符,除了Unicode字母、美元符號和下劃線,還可以用數(shù)字。 中文是合法的標識符,可以用作變量名。 JavaScript有一些保留字,不能用作標識符: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。 另外,還有三個詞雖然不是保留字,但是因為具有特別含義,也不應該用作標識符:Infinity、NaN、undefined。

5、 可選的分號

JavaScript使用分號(;)將語句分隔開。 注意:JavaScript并不是在所有換行處都填補分號,只有在缺少了分號就無法正確解析代碼的時候,才會填補分號。也可以說,如果當前語句和隨后的非空格字符不能當做一個整體來解析時,JavaScript就在當前語句行結(jié)束處填補分號 。比如下面代碼:

var a

a

=

3

console.log(a)

JavaScript將其解析為:

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

JavaScript給第一行換行處添加了分號,因為沒有分號,JavaScript就無法解析代碼var a a。第二個a可以單獨當做一條語句“a;”,但JavaScript并沒有給第二行結(jié)尾填補分號,因為它可以和第三行內(nèi)容一起解析成“a=3”。
上面的代碼解析后是沒有問題的,可是沒有主動添加分號,有些時候會導致意想不到的情形。比如:

var y=x+f

(a+b).toString()

解析后:

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

如果當前語句和下一行語句無法合并解析,JavaScript則在第一行后填補分號,這是通用規(guī)則,但有兩個例外。


第一個例外是在涉及return、break和continue語句的場景總,如果這三個關(guān)鍵字后緊跟換行,JavaScript則會在換行處填補分號。

例如:

return

true;

JavaScript會解析成:

return; true;


第二個例外是在涉及“++”和“--”運算符的時候。

x

++

y

將會解析成 “x;++y”,而不是“x++;y”


適當?shù)奶砑臃痔枺杀苊庖庀氩坏降腻e誤。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號