JavaScript 語法結構

1 字符集

JavaScript 程序是用 Unicode 字符集編寫的。Unicode 是 ASCII 和 Latin-1 的超集,並支持地球上幾乎所有在用的語言。

1.1 字符的 Unicode 表示法

JavaScript 字符允許採用 Unicode 表示法,但是只限於 Unicode 碼點在 \u0000~\uFFFF 之間的字符。超出這個範圍的字符,必須用 2 個雙字節的形式表示。

'\u0041'    // => "A"
'\u20BB7'   // => "₻7"
'\uD842\uDFB7'  // => "��"

ES6 對這一點做出了改進,只要將碼點放入大括號,就能正確解讀該字符。

'\u{41}'    // => "A"
'\u{20BB7}' // => "��"
'\u{20BB7}' === '\uD842\uDFB7'  // => true

1.2 區分大小寫

JavaScript 是區分大小寫的語言。所有的標識符(identifier)都必須採取一致的大小寫形式。但是Html並不區分大小寫(儘管Xhtml區分大小寫)。

1.3 空格、換行符和格式控制符

JavaScript 會忽略程序中的標識(token)之間的空格。除了可以識別普通的空格符(\u0020),JavaScript 還可以識別:水平製表符(\u0009)、垂直製表符(\u000B)、換頁符(\u000C)、不換行空格符(\u00A0)、零寬不換行空格符(\uFEFF)等 Unicode 中的空白字符。

JavaScript 將如下字符識別爲換行符:換行符(\u000A)、回車符(\u000D)、行分隔符(\u2028)、段分隔符(\u2029)。回車符加換行符在一起被解析爲一個單行結束符。多數情況下 JavaScript 也會忽略換行符,但以下兩種情況例外:

// 1 涉及 return、break、continue 這三個關鍵字的時候
return
true
/* 上面代碼本意 “return true”
   但是 JavaScript 會解析成 “return; true”
*/

// 2 涉及 ++ 和 -- 運算符的時候
x
++
y
/* 上面代碼本意 “x++; y”
   但是 JavaScript 會解析成 “x; ++y”
*/

控制符控制文本的視覺顯示,比如:從右至左書寫標記(\u200F)和從右至左書寫標記(\u200E)。同空格、換行符,格式控制符不能用在標識符(比如:變量名)中。但有個例外, 零寬連接符(\u200D)和零寬不連接符(\u200C)可以出現在標識符中,但不能作爲標識符的首字符。

var A\u200DB = 'AB'
console.log('A\u200DB = ' + A\u200DB)   // => A‍B = AB

2 註釋

Javascript 註釋的語法與 C ++ 等語言中的語法相同

// 單行註釋

/* 這是一個更長的,
   多行註釋
*/

/* 然而, 你不能, /* 嵌套註釋 */ 語法錯誤 */

3 字面量

字面量(literal,或者稱直接量)就是程序中直接使用的數據值,如:

12  // 數字
1.2 // 小數
"hello world"   // 字符串文本
'hi'    // 另一個字符串
true    // 布爾值
false   // 另一個布爾值
/javascript/gi  // 正則表達式直接量(用做模式匹配)
null    // 空
{x: 1, y: 2}    // 對象
[1, 2, 3, 4, 5] // 數組

4 標識符和保留字

在 JavaScript 中標識符用來對變量和函數進行命名,或者用作 JavaScript 代碼中某些循環語句中的跳轉位置的標記。JavaScript 標識符必須以字母、下劃線(_)或美元符($)開始,後續的字符可以是字母、數字、下劃線或美元符。

和其他編程語言一樣,JavaScript 保留了一些標識符爲自己所用。保留字不能用作普通的標識符。在 MDN Web Docs 中查看 JavaScript 保留字

另外,JavaScript 預定義了很多全局變量和函數,即 JavaScript 內置對象,應當避免把它們的名字用做變量名和函數名。在 MDN Web Docs 中查看 JavaScript 內置對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章