JavaScript严格模式

一.什么是严格模式

JavaScript 严格模式(strict mode)即在严格的条件下运行。

二.严格模式的优点

1.减少js代码的不规范使用和不合理运行。
2.提高编译器效率,提高运行速度。
3.消除代码运行的一些不安全之处,保证代码运行的安全。
4.为未来新版本的Javascript做好铺垫。

三.严格模式的分类

1.全局严格
2.局部严格 (在方法内部使用严格)

四.严格模式的限制

1.不能使用未定义的变量 (输出:x is not defined)
例如:

	 b=20;
     console.log(b);

2.不允许删除变量或者对象
例如:

	 function fun(){

     }
     delete  fun;

3.不允许变量重名,函数的形参不能重名
例如:

	 var a=10;
     var a=20;
     console.log(a);

4.不允许使用八进制
例如:

	 var x = 010;
	 console.log(x);

5.不允许使用转义字符
例如:

	var a=\010;
    console.log(a);

6.不允许修改只读属性的值
例如:

	var obj={}
    Object.defineProperty(obj,'x',{
        value:10,
        writable:false

7.不允许对只有getter方法的属性修改(类似不允许修改只读)
例如:

var obj={
        _x:null,
        get x(){
            return this._x;
        },
        set x(a)
        {
            console.log("执行set");
            this._x=a;
        }
    }
    obj.x=20;
    console.log(obj._x,obj);

8.不允许删除对象的原型对象
例如:

var obj={
        name:'zhangsan'
    }

    delete obj.name;
    delete obj.__proto__;

    delete  Object.prototype;
    console.log(obj);

9.不能使用eval 或者arguments 作为变量名
例如:

	var eval=10;
    console.log(eval);

10.严格模式下this指针this===undefined
例如:

fun();
    function fun(){
        console.log(!this);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值