tags: JavaScript優良部份
空格
設計用字元或註解的形式出現
var 和 that 之間的空格不可省略
錯誤範例:會造成語法錯誤,應該以//替代。
/*
var rm_a = /*a*/.match(s);
*/
名稱
至少要有一個文字字母,其後可選擇接續一個到多個文數字元或底線。
不可為保留字
保留字不可作為物件實字的特性名稱,可不可接在點號後面。
數值
數值表現為 64 位元的浮點數。
與大部分語言的差異在於 JavaScript 沒有單獨的整數型別。
數值實字包含指數,則把e前的部分乘上十次方。
負數可在字首加上-運算子構成。
NaN 屬於數值,它代表「運算無法產生正常結果」,可用isNAN函式偵測。
字串
字串實字可用單引號或雙引號圍起。
\為轉譯字元。
所有字元都屬於 16 位元的長度範圍。
沒有 character 型別,若要表示字元,讓字串只有一個字元。
字串有 length 屬性。
可使用+串連兩個字串。
敘述
一個編譯單位包含一個可執行的敘述。
script標籤傳遞一個已編譯、立即執行的編譯單位。
var 可定義一個函式的私有變數。
switch、while、for、do 可具有選用的自訂標籤
敘述多半由上至下執行。
順序能使用條件句敘述、迴圈敘述、中斷性敘述及函式呼叫。
區塊是一組大括號,就 JavaScript 來說區塊不會建立一個新的區域。
if 敘述根據運算結果改變流向(then or else)。
以下視為 false 家族的值:
false
null
undefined
空字串 ”
數值 0
數值 NaN
除此之外,其他都視為 true,包含 true 本身、字串 ‘false’,和所有物件。
switch 敘述呈現多向分支,他接受運算式,而跟後面的 case 比較,並尋找相等案例,沒有相符合則選用 default 敘述。
case:包含一個到多個運算式,子句敘述後應為中斷敘述。
while:表達一個簡單迴圈,運算結果為 false ,則中斷迴圈。
for:有兩種形式:
一般來說:由初始句、條件句、遞增句控制。檢查迴圈是否達到標準,如果條件句為 false 則中斷迴圈。
列舉物件的特性:每輪迴圈均把物件的特性名稱字串指派給變數。
do:和 while 很像,不過 do 要等到區塊執行之後才會檢查,意思就是他至少會執行一次。
try:執行一個區塊,捕捉任何由區塊丟出的例外狀況。
throw:負責發出例外狀況,如果敘述在 try 區塊,控制權則在 catch 子句。
運算式通常是個物件實字,其中包含 name 和 message 特性。
return 使函式提早回傳,也能指定回傳的值,若未指定則回傳 undefined。
break 能跳出迴圈敘述或 switch 敘述,能選擇性地加上標籤。JavaScript 不允許在 break 和標籤之間安插行末字元。
運算性敘述可指派值給一個或多數成員。
運算式
運算式包含:
實字值
內建值
new + 運算式
delete + 精確運算式
以括號圍起的運算式
皆有字首運算子的運算式
嵌入式運算式和其他運算式
? 三元運算子 + 另一個運算式 + : + 另一個運算式
一個呼叫式
一個精確式
! 運算元估算是 true ,運算後結果產生的結果是 false,反之為 true。
運算子可做數值或字串的相加,請確認兩個運算元都是數值。
/ 運算子能產生非整數的結果,即使兩個運算元均為整數。
若第一個運算元估算為 false,&& 運算子則產生第一個運算元的值,否則產生第二個值。
若第一個運算元估算為 true,|| 運算子則產生第一個運算元的值,否則產生第二個值。
呼叫造成函式的執行。
精確式用於指定物件特性或陣列元素。
實字
物件實字,指定註記的慣例,特性名稱以名稱或字串指定。
陣列實字,以指定一個新陣列的註記慣例。
函式
函式實字定義了函式的值,名稱為選用,參數行為像是呼叫引數初始化的變數。