用一對花括號定義安全
js沒有塊級做用域函數
常見錯誤
code
try
後面必須接一個cath
或finally
語句
發生嵌套時的執行順序:
紅框內部沒有catch
,因此會跳到最近的catch
去處理,即外部的catch
異常已經在內部處理,就再也不拋到外部了
cath
再拋異常,內部異常沒有處理,拋給外面,外面處理以前,要先執行裏面的finally
語句
對象
坑比較多
blog
不建議使用
ip
嚴格模式是一種特殊的執行模式,它修復了部分語言上的不足(禁用with),向上兼容(有利於編寫高質量,健壯性的代碼),提供更強的錯誤檢查,並加強安全性(在eval中使用了獨立的做用域).作用域
- 非嚴格模式下,agm[0]和參數a相互綁定,可是當不傳參數時,a的值爲undefined,此時若修改了agm[0]的值,a仍然是undefined!!!
- 嚴格模式下,agm和形參無任何關係
- 嚴格模式下,若是傳入的參數是對象,因爲js的call by share,修改對象屬性時,會相互影響
Javascript語言的一個特色,就是容許"動態綁定",即某些屬性和方法到底屬於哪個對象,不是在編譯時肯定的,而是在運行時(runtime)肯定的。
嚴格模式對動態綁定作了一些限制。某些狀況下,只容許靜態綁定。也就是說,屬性和方法到底歸屬哪一個對象,在編譯階段就肯定。這樣作有利於編譯效率的提升,也使得代碼更容易閱讀,更少出現意外。好比禁止使用with語句,創設eval做用域。it