javascript的try catch和es5標準模式
阿新 • • 發佈:2020-10-16
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 !!!