• Javascript 严格模式详解


    zhuan  

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

    除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。

    设立"严格模式"的目的,主要有以下几个:

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

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

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

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

    "严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。

    另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。

    本文将对"严格模式"做详细介绍。

    将"use strict"放在脚本文件的第一行,则整个脚本都将以"严格模式"运行。如果这行语句不在第一行,则无效,整个脚本以"正常模式"运行。如果不同模式的代码文件合并成一个文件,这一点需要特别注意。

    3.3 脚本文件的变通写法

    因为第一种调用方法不利于文件合并,所以更好的做法是,借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数之中。

      (function (){

        "use strict";

        // some code here

       })();

    (2)创设eval作用域

    正常模式下,Javascript语言有两种变量作用域(scope):全局作用域和函数作用域。严格模式创设了第三种作用域:eval作用域。

    正常模式下,eval语句的作用域,取决于它处于全局作用域,还是处于函数作用域。严格模式下,eval语句本身就是一个作用域,不再能够生成全局变量了,它所生成的变量只能用于eval内部。

      "use strict";

      var x = 2;

      console.info(eval("var x = 5; x")); // 5

      console.info(x); // 2

  • 相关阅读:
    疫情期间刷题列表
    P3379 【模板】最近公共祖先(LCA)
    P3865 【模板】ST 表
    Distance Queries
    Frequent values
    P3388 【模板】割点(割顶)
    P1168 中位数
    单链表排序
    大数据各组件重要技术点总结
    Flink CDC同步MySQL分库分表数据到Iceberg数据湖实践
  • 原文地址:https://www.cnblogs.com/vivijiang/p/6121084.html
Copyright © 2020-2023  润新知