[JavaScript]JavaScript筆記-概述(語彙結構)

摘要:[JavaScript]JavaScript筆記-概述(語彙結構)

最近心血來潮,隨手拿了一本O'REILLY JavaScript大全,想漸進式的熟悉JavaScript的語法與用法,並用網誌的方式紀錄下一些小重點,使日後查詢時較方便省時。

在第一章的語彙結構,只記錄了部分較會用到的地方。

在JavaScript程式中,語彙單元間的空格、換行會被忽略,因此可以自由的使用空格與換行,使得程式碼可以更容易閱讀與理解。
JavaScript將下列字元視為空白(whitespace)
tab(\u0009)
vertical tab(\u000B)
firm feed(\u000C)
nonbreaking space(\u00A0)
byte order mark(\uFEFF)
以及任何Unicode Zs類目中的字元
 
JavaScript將下列字元視為「行終止符」(line terminators)
line feed(\u000A)
carriage return(\u000D)
line separator(\u2028)
paragraph separator(\u2029)
Carriage return與line feed的組成的序列被視為單行終止符(single line terminator)
 


而在JavaScript裡的註解有三種,如下:
 
// 這是單行註解(single-line comment)
/**/ 這也是單行註解
/*
 * 這是多行註解
 *
 */



識別字(identifier)

識別字就是個名稱
在JavaScript中,識別字用來為變數與函式命名
JavaScript識別字必須是字母、底線(underscore,_)或錢幣符號($)為開頭
(JavaScript中數字不能為首字元)
EX:
hello
hello520
hello_world
_hello
$hello
 
保留字(reserved words)
JavaScript保留了數個識別字作為語言本身的關鍵字(Keyword)
保留字不可作為常規的識別字
在書本裡,是以ECMAScript 5為範例,查詢後發現已經更新到ECMAScript 6了。
以下為JavaScript定義的關鍵字:
(詳請參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Reserved_keywords_as_of_ECMAScript_6)
 
Reserved keywords as of ECMAScript 6
break
case
class
catch
const
continue
debugger
default
delete
do
else
export
extends
finally
for
function
if
import
in
instanceof
let
new
return
super
switch
this
throw
try
typeof
var
void
while
with
yield
 
  
JavaScript也保留了一些特定的關鍵字,目前並未使用,但在未來版本可能會使用:
enum
await
 
在嚴謹(strict)模式下的未來保留字:
implements
package
protected
static
interface
private
public
 
 
 
ECMAScript 1 till 3 定義的保留字:
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
transient
volatile