码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript严格模式分析

时间:2018-01-23 20:15:41      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:rip   bsp   mil   size   未来   模式   使用   设置   mode   

简要:严格模式(strict mode)是JavaScript在ES5里面新增的编码模式,只要一行代码就可开启,可谓非常简单了,而它对于我们的编码来说到底有什么不同呢?

 

一、严格模式的目的?

  1、 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  2、消除代码运行的一些不安全之处,保证代码运行的安全;

  3、提高编译器效率,增加运行速度;

  4、为未来新版本的Javascript做好铺垫。

 

二、使用方法?

  只要在合适的位置插入这行代码就可以了。

  "use strict";

  1、针对真个脚本文件

    <script>

      "use strict"; //插入到这个位置,对真个js文件有效

      console.log(somecode);

    </script>

  2、针对独立的函数

    function a(){

      "use strict"; //插入到这个位置,这对这个函数有效

      console.log(somecode)

    }

三、严格模式有哪些语法变化?

  1、全局变量必须显式声明

    "use strict"; 

    a = 1; //这时报错,因为严格模式下,不能默认声明为全局变量了,必须加 var等声明。

  2、静态绑定,javascript的动态绑定收到了一些限制,如with语句不再允许使用(with语句是在执行时候runtime才绑定属性、方法到哪个对象)

    技术分享图片

  3、增加eval()作用域

    普通模式下:2种,全局作用域、函数作用域;此时的eval的作用域取决于它处于全局作用域下还是函数作用域下;

    严格模式下:3种,全局作用域、函数作用域、eval作用域;

  4、this不再指向全局对象

    意味着:当使用构造函数的时候,当没有用new关键字,此时的this将不再默认指向全局对面window,而会报错;

    

  5、禁止在函数内部遍历调用栈

  6、严格模式下无法删除变量。只有configurable设置为true的对象属性,才能被删除。

  7、正常模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。

  。。。后续更新中

 

  更多:请参考阮一峰老师的博客http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

 

JavaScript严格模式分析

标签:rip   bsp   mil   size   未来   模式   使用   设置   mode   

原文地址:https://www.cnblogs.com/zhoumingjie/p/8337200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!