1. 程式人生 > 實用技巧 >javascript的try catch和es5標準模式

javascript的try catch和es5標準模式

try catch

try {
  console.log('a')
  console.log(b)
} catch (e) {
  console.log(e.name + ' : ' + e.message)  //執行
}

e.name有六種
1.EvalError: eval()的使用與定義不一致
2.RangeError: 數值越界
3.ReferenceError: 非法或不能識別的引用數值
4.SyntaxError: 發生語法解析錯誤
5.TypeError: 運算元型別錯誤
6.URLError: URL處理函式使用不當

ES5 嚴格模式 ES3.0與ES5.0衝突的部分就是用ES5.0(不再使用ES3.0的一些不規則語法), 否則就是用ES3.0

看如下例子

"use strict";   //ES5.0的嚴格模式
function test() {
  console.log(arguments.callee) //報錯
  console.log(test.caller)  //報錯
}
function demo() {
  test()
}
demo()
with(document) {  //報錯
  write('abc')
}

//變數賦值前必須申明
a = 2  //報錯

//區域性的this必須賦值
console.log(this)  //window
function test() {
  console.log(this)  //undefined, 預編譯不再指向window
} test() //形參不能重複 function test(name, name) { //報錯   console.log(name) } test(1) //拒絕屬性重複,不報錯 var obj = {   name: 'a',   name: 'b' } //不能eval

end !!!