辨別符
- 第一個字元,可以是任意Unicode字母(包括英文字母和其他語言的字母),以及美元符号(
)和下劃線($
)。_
- 第二個字元及後面的字元,除了Unicode字母、美元符号和下劃線,還可以用數字
。0-9
JavaScript有一些保留字,不能用作辨別符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
來源:
http://javascript.ruanyifeng.com/grammar/basic.html還有三個詞雖然不是保留字,但是因為具有特别含義,也不應該用作辨別符:
Infinity
、
NaN
undefined
類數組對象的周遊可以使用和數組對象的周遊一樣的方法,
js使用者自定義錯誤
下面的例子充分反映了
try...catch...finally
這三者之間的執行順序。
function f() {
try {
console.log(0);
throw 'bug';
} catch(e) {
console.log(1);
return true; // 這句原本會延遲到finally代碼塊結束再執行
console.log(2); // 不會運作
} finally {
console.log(3);
return false; // 這句會覆寫掉前面那句return
console.log(4); // 不會運作
}
console.log(5); // 不會運作
}
var result = f();
// 0
// 1
// 3
result
// false
上面代碼中,
catch
代碼塊結束執行之前,會先執行
finally
代碼塊。從
catch
轉入
finally
的标志,不僅有
return
語句,還有
throw
語句。
function f() {
try {
throw '出錯了!';
} catch(e) {
console.log('捕捉到内部錯誤');
throw e; // 這句原本會等到finally結束再執行
} finally {
return false; // 直接傳回
}
}
try {
f();
} catch(e) {
// 此處不會執行
console.log('caught outer "bogus"');
}
// 捕捉到内部錯誤
上面代碼中,進入
catch
代碼塊之後,一遇到
throw
語句,就會去執行
finally
代碼塊,其中有
return false
語句,是以就直接傳回了,不再會回去執行
catch
代碼塊剩下的部分了。
http://javascript.ruanyifeng.com/grammar/error.html 來自為知筆記(Wiz)