zoukankan      html  css  js  c++  java
  • JavaScript严格模式分析


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

    一. 严格模式的目的?

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

    二. 使用方法?

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

      "use strict";
    
    • 针对整个脚本文件
    <script>
    
         "use strict"; //插入到这个位置,对整个js文件有效
         
         console.log(somecode);
         
    </script>
    

        

    • 针对独立的函数
      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. 正常模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。


    。。。后续更新中

    更多内容:请参考阮一峰老师的博客javascript严格模式详解

  • 相关阅读:
    css常用属性记录
    js字符串常用方法总结
    mongoose基本操作
    本地存储API
    历史相关API
    自定义播放器
    HTML5全屏操作API
    HTML5自定义属性操作
    HTML5类操作
    案例:3D切割轮播图
  • 原文地址:https://www.cnblogs.com/zhoumingjie/p/8338243.html
Copyright © 2011-2022 走看看