try里面的代码发生错误,不会执行错误后的try里面的代码,接着执行外部的代码;
try里面的代码发生错误,执行catch里面的代码,将错误信息显示
try{
console.log('a');
console.log(b);
console.log(c);
}catch(e){ // error error.message error.name --> error
console.log(e.name + ':' + e.message);
}
console.log('d');
error.name 六种值对应的信息
EvalError
eval()的使用与定义不一致
RangeError
数值越界
ReferenceError 非法或不能识别的引用数值
没定义就使用
SyntaxError 发生语法解析错误
TypeError
操作类型错误
URIError
URI处理函数使用不当
es5标准模式
基于的es3.0 + es5.0 的新增方法
es3.0 和 es5.0 产生冲突的部分
用严格模式 那么产生冲突的部分就是es5.0
启用严格模式
"use strict";
全局严格模式,写在页面逻辑的最顶端;
局部函数内严格模式,也可以写在函数内部的最顶端(推荐使用)
with可以改变作用域链
可以让它里面的代码的作用域链的最顶端变成括号里面的对象
var obj = {
name : 'obj';
}
var name = 'window';
function test(){
var name = 'scope';
with(obj){
console.log(name);
}
}
test(); // obj
eval() 能改变作用域
能把字符串当成代码执行
严格模式
不能用 with arguments.callee func.caller
变量赋值前必须声明
局部this必须被赋值,赋值是什么就是什么
拒绝重复属性(不报错)和参数