摘要:[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
|