严格模式。

JavaScript严格模式,即在严格的条件下运行。

使用严格模式的目的:

  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • 为未来新版本的Javascript做好铺垫

1.为脚本开启严格模式

为整个脚本文件开启严格模式,需要在所有语句之前放一个特定语句"use strict"。单引号也可。

<script>
        'use strict';

    </script>

或者:

 <script>
        (function(){
            'use strict';
            var num = 10;
        })()
    </script>

<script>
        //此时只在fn函数内部添加了严格模式
        function fn() {
            'use strict';

        }
        function fun () {

        }
    </script>

2.严格模式中的变化

(1)变量规定

在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,变量先用var声明,之后才能使用。

不能随意删除已经声明好的变量。

(2)this指向

以前在全局作用域下,this指向window。

现在在严格模式下,全局作用域中函数中的this的值是undefined。

严格模式下,构造函数不加new调用,如果给它赋值this会报错。(以前直接调用构造函数,就把它当做普通函数进行调用,this指向全局对象)。

new实例化的构造函数指向创建的对象实例。

严格模式下,定时器内部的this指向还是window。

事件、对象还是指向调用者。

(3)函数变化

严格模式下的函数的参数不允许有重名现象。

函数必须声明在顶层,新版本的JavaScript会引入"块级作用域"(es6已引入),为了与新版本接轨,不允许在非函数的代码块内声明函数。(非函数的代码块有if语句的花括号内,for循环的花括号内)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hcoke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值