讀古今文學網 > 編寫高質量代碼:改善JavaScript程序的188個建議 > 建議2:正確辨析JavaScript句法中的詞、句和段 >

建議2:正確辨析JavaScript句法中的詞、句和段

JavaScript語法包含了合法的JavaScript代碼的所有規則和特徵,它主要分為詞法和句法。詞法包括字符編碼、名詞規則、特殊詞規則等。詞法側重語言的底層實現(如語言編碼問題等),以及基本規則的定義(如標識符、關鍵字、註釋等)。它們都不是最小的語義單位,卻是構成語義單位的組成要素。例如,規範字符編碼集合、命名規則、標識符、關鍵字、註釋規則、特殊字符用法等。

句法定義了語言的邏輯和結構,包括詞、句和段的語法特性,其中段體現邏輯的結構,句表達可執行的命令,詞演繹邏輯的精髓。

段落使用完整的結構封裝獨立的邏輯。在JavaScript程序中,常用大括號來劃分結構,大括號擁有封裝代碼和邏輯的功能,由此形成一個獨立的段落結構。例如,下面這些結構都可以形成獨立的段落。


{

//對像

}

function{

//函數

}

if{

//條件

}

for{

//循環

}

while{

//循環

}

switch{

//多條件

}

with{

//作用域

}

try{

//異常處理

}


段落結構包含的內容可以是一條或多條語句。可以在段落起始標記({)前面添加修飾詞,如域謂詞(with、catch)、邏輯謂詞(if、while、for、switch等)、函數謂詞(function fn(arg))等。

語句是由多個詞構成的完整邏輯。在JavaScript中,常用分號(;)來劃分語句,有時也可以省略分號,默認使用換行符表示完整的語句。

一條語句可以包含一個或多個詞。例如,在下面兩條語句中,第一條語句只有一個詞,這是一個指令詞,該指令只能位於循環體或switch結構體內。第二條語句包含3個詞,alert表示函數名(即變量),小括號表示運算符,而「"提示信息"」表示字符串直接量。


break;

alert("提示信息");


一條語句也可以包含一個或多個段落。例如,在下面這條語句中,直接把一個函數當做一個變量進行調用。


(function(i){

alert(i);

})("提示信息");


還可以把函數包含在一個閉包中形成多個結構嵌套,這個嵌套結構體就構成了一個複雜的語句,例如:


(function(i){

return function{

alert(i);

};

})("提示信息");


語句一般至少包含一個詞或段落,但是語句也可以什麼都不包含,僅由一個分號進行標識,這樣的句子稱為空語句。空語句常用做佔位符。例如,在下面這個循環體內就包含了一個空語句。


for(var i;i<100;i++){

;

}


詞語是JavaScript句法結構中的最小語義單位,包括指令(或稱語句)、變量、直接量(或常量)、運算符等。在JavaScript中,詞語之間必須使用分隔符進行分隔,否則JavaScript就會錯誤解析。下面的代碼塊是一個簡單的求兩個數平均值的方法。


var a=34;

var b=56;

function aver(c,d){

return(c+d)/2;

}

alert(aver(a,b));


其中var、function、return是指令,這些指令也是JavaScript默認的關鍵字;a、b、c、d、aver、alert為變量;34、56是數值直接量;=、(、)、{、}、/、+、,是運算符。