JavaScript异常错误的抛出 es5.0的严格模式

JavaScript异常错误的抛出 es5.0的严格模式

抛异常的处理方法
try{ 
...

}catch(e){ 
...
}

异常信息的输出

e.message 错误信息

​ e.name 错误名

try{
		console.log(‘a’);
		console.log(b);
		console.log(‘c’);
	}catch(e){
		console.log(e.name+”   ”+e.message);
	}
		console.log(‘d’);

异常信息对应的六种值

error.name

EvalError:eval()的使用与定义不一致

​ RangeError :数值越界

​ ReferenceError:非法或不能识别的引用数值

​ 比如:当一个变量未经声明就会报该错

​ SyntaxError :发生语法解析错误

​ 比如:使用了中文的符号,就会报该错

​ TypeError : 操作数类型错误

​ URLError :URL处理函数使用不当

​ 地址发生错误

es5.0的严格模式

解释:不在兼容es3.0的一些不规则语法,使用全新的es5.0规范

当前浏览器运行时基于es3.0的方法,和es5.0的新增方法使用的

若es3.0的方法与es5.0方法产生冲突,使用的es3。0的方法

在es5.0严格模式,那么es3.0和es5.0产生冲突的部分就是使用es5.0,否则 会使用es3.0的

es5.0严格模式启动

必学在整个页面最顶端写

​ “use strict”; //表示启动es5.0模式

​ 在es5.0下不能使用 arguments.callee

​ 也可写在局部比如

​ 外部文件或者局部方法里,

​ 或者全里

​ function demo(){

​ console.log(arguments.callee)

​ }

​ function test(){

​ “use strict”;

​ console.log(arguments.callee);

​ }

有两种语法

​ 全局严格模式

​ 局部函数内严格模式(推荐)

es5.0 语法规则

一行字符串,不会对不兼容严格模式的浏览器产生影响

​ 在es5.0下不兼容 with ,arguments.callee , func.caller

​ with(){ //可以改变作用域链

}

​ 变量赋值前必须声明

​ 局部this必须被赋值

​ Person.call(null/undefined)

​ 预编译时this不在指向window了,但全局下指向window

​ 赋值什么就是什么

​ 拒绝重复属性和参数,但是不报错

with(){} 的学习

With的作用:它可以改变作用域链,可以括号中的参数当成作用域链的最顶端

var obj={
			name:”obj”;
		}
	var name=’window’;
	
	function text(){
			var name=’scope’;
			with(obj){  //在括号添加一个obj对象,会把obj当成作用域链的代码最顶端
					console.log(name);  //输出的是obj对象的name
				}
		}
	
	text();

代码简化功能写法利用with来实现

var org={
    dp1:{
        jc:{
            name:'abc',
            age:123
        },
        deng:{
            name:"xiaom",
            age:234
        }
    },
    dp2:{
        kkk:"kaodoad"
    }
}
with(org.dp1.jc){
    console.log(name);
}
with(org.dp1.deng){
    console.log(name);
}

使用该方法会更好简化代码,不会污染全局

比如像使用document方法使用

with(document){

//在方法体里可以直接调用方法


eval(“”); //可以将字符串当代码来执行
eval(“console.log(“kkkk”);”);

但是在es3.0里面不能使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值