try...catch
try{}catch(e){}finally{}
- Error.name的六种值对应的信息:
-
- EvalError:eval()的使用与定义不一致
-
- RangeError:数值越界
-
- ReferenceError: 非法或不能识别的引用数值
-
- SyntaxError: 发生语法解析错误
-
- TypeError: 操作数类型错误
-
- URIError: URI处理函数使用不当
es5严格模式
- "use strict"
- 不再兼容es3的一些不规则语法。使用全新的es5规范,使用时必须在代码执行的头部
- 两种用法:
- 使用字符串原因:不会对不兼容严格模式的浏览器产生影响,向前兼容
- 不支持
with, arguments.callee, func.caller,变量赋值前必须声明,局部this必须被赋值(Person.call(null/undefined)赋值什么就是什么),拒绝重复属性和参数
- with和命名空间结合使用,在es5严格模式下禁止使用
// 使用with会添加一次作用域
var obj = {
name: 'obj',
}
var name = 'window';
function test() {
var name = 'scope';
var age = 123;
with (obj) {
console.log(name); // "obj"
console.log(age); // 123
}
}
test();