枯燥的js try...catch与es5

try{
    
    
	console.log('a');
	console.log(b);
	console.log('c');
}catch(e){
    
    
	//这个部分赋值捕捉到错误信息
	console.log(e.name+" : "+e.message);
}
console.log('d');

try里面会自动忽略错误执行。结果为a c d。

Error.name的六种值对应的信息:
1.EvalError:eval的使用与定义不一致
2.RangeError:数值越界
3。ReferenceError:非法或不能识别的引用数值(未经声明调用等)
4.SyntaxError:发生语法解析错误(中文字符等)
5.TypeError:操作数类型错误
6.URIError:URI处理函数使用不当(地址发生错误等)

ES5严格模式

es3.0和es5.0产生冲突的部分用es3.0否则就用es3.0

"use strict";(写在最顶端)
采用字符串,不会对不兼容严格模式的浏览器产生影响

两种用法:

1.全局严格模式
2.局部函数内严格模式(推荐 也是在逻辑第一行写)

不支持

with

改变作用域链,将括号中的对象作为执行期最顶端。下列执行结果为obj。

"use strict";
var obj={
    
    
	name:"obj"
}
var name = 'window';
function test(){
    
    
	var name = 'scope';
	with(obj){
    
    
		console.log(name);
	}
}

arguments.callee与func.caller不被允许

变量赋值前必须声明

局部this必须被赋值即this不指向widow:

(Person.call(null/undefined)赋值什么就是什么)

拒绝重复属性和参数。

猜你喜欢

转载自blog.csdn.net/weixin_51664705/article/details/113853618