1.try{ }catch(e){ }
在try里面发生错误,try里面后面的都不会执行的
try{}catch(e){}finally{}
Error.name的六种值对应的信息:
- 1.EvalError: eval()的使用与定义不一致
- 2.RangeError:数值越界
- 3.ReferenceError:非法或不能识别的引用数值
- 4.SyntaxError:发生语法解析错误
- 5.TypeError:操作数类型错误
- 6.URIError : URI处理函数使用不当
2.ES5严格模式
浏览器一般基于es3.0+es5.0的新增方法
es5.0严格模式:es3.0和es5.0产生冲突的部分就是用es5.0,否则用es3.0
不再兼容es3的一些不规则语法。使用全新的es5规范。就是一行字符串,不会对不兼容严格模式的浏览器产生影响。
不支持with.arguments.callee,func.caller,变量赋值前必须声明,局部this必须被赋值(Person.call(null/undefined)赋值什么就是什么),拒绝重复属性和参数
ES5.0严格模式的启动:
两种用法:
全局严格模式
局部函数内严格模式(推荐)
"use strict";//语法规定必须写在页面的逻辑的最顶端
function test() {
"use strict";//可以写在函数里面,但必须是第一行
}
3.with:改变到作用链的最顶端
with(){
}
var org = {
dp1:{
jc:{
name: "aa",
age:1234
},
xiaoliu:{
nameL:"ss",
age:234
}
},
dp2:{
}
}
with(org.dp1.xiaoliu){
console.log(name);
}
with(org.dp1.jc){
console.log(name);
}