• 15 【严格模式】


    18.严格模式

    除了正常的运行模式,JavaScript 还有第二种运行模式:严格模式(strict mode)。顾名思义,这种模式采用更加严格的 JavaScript 语法。

    同样的代码,在正常模式和严格模式中,可能会有不一样的运行结果。一些在正常模式下可以运行的语句,在严格模式下将不能运行。

    18.1 设计目的

    早期的 JavaScript 语言有很多设计不合理的地方,但是为了兼容以前的代码,又不能改变老的语法,只能不断添加新的语法,引导程序员使用新语法。

    严格模式是从 ES5 进入标准的,主要目的有以下几个。

    • 明确禁止一些不合理、不严谨的语法,减少 JavaScript 语言的一些怪异行为。
    • 增加更多报错的场合,消除代码运行的一些不安全之处,保证代码运行的安全。
    • 提高编译器效率,增加运行速度。
    • 为未来新版本的 JavaScript 语法做好铺垫。

    总之,严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向。

    18.2 启用方法

    进入严格模式的标志,是一行字符串use strict

    'use strict';
    
    • 1

    老版本的引擎会把它当作一行普通字符串,加以忽略。新版本的引擎就会进入严格模式。

    严格模式可以用于整个脚本,也可以只用于单个函数。

    (1) 整个脚本文件

    use strict放在脚本文件的第一行,整个脚本都将以严格模式运行。如果这行语句不在第一行就无效,整个脚本会以正常模式运行。(严格地说,只要前面不是产生实际运行结果的语句,use strict可以不在第一行,比如直接跟在一个空的分号后面,或者跟在注释后面。)

    <script>
      'use strict';
      console.log('这是严格模式');
    </script>
    
    <script>
      console.log('这是正常模式');
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    上面代码中,一个网页文件依次有两段 JavaScript 代码。前一个