• es5.0严格模式


    现在的浏览器是基于es3.0原有的以及es5.0新增的语法方法使用的。

    而es3.0和es5.0产生冲突的部分浏览器默认采用es3.0语法规范。

    因此es5.0产生了一个新特性——严格模式,一旦启用es5.0严格模式,

    es3.0和es5.0产生冲突的部分浏览器将不再兼容es3的一些不规范语法,

    使用全新的es5规范。

    从es5.0开始,javscript有两种运行模式:正常模式和严格模式('use strict')。

    作用:

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

    2、消除代码运行的一些不安全性,促进代码运行的安全;

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

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

    启用:

    “use strict” 该字符串必须写在需要启用严格模式的代码之前

      例如下面的代码: 

    <script>
    //这部分将不会启用严格模式
    ;
    "use strict"; function test() { console.log(arguments.callee)}
    </script>
    <s<cript>
    //全局模式
    "use strict";
    function test() {
    console.log(arguments.callee)//严格模式下这段代码将会报错
    }
    test();
    </script>
    <script>
    function test(){
    console.log(arguments.callee)//代码没有启用严格模式,正常用行
    }
    </script>
    //局部模式
    <script>
    function test(){
    "use strict"
    console.log(arguments.callee)}
    </script>

    严格模式下的语法限制

    js属于弱类语言,严格模式限制了许多强大的方法的使用,降低了灵活性,但有利于实际极开发

    代码展示:

    例如with语句

    非严格模式
    <script>
    //"use strict"
    var obj={
        name : "obj",
    }
    function test(){
      var name = "abc";
      with (obj){
        console.log(name)//非严格模式下打印obj
      }
    }
    test();
    </script>
    严格模式
    <script>
    "use strict"
    var obj = {name:"obj"}
    function test(){var name="abc";with(obj){console.log(name)}}
    //严格模式下报错
    //Uncaught SyntaxError: Strict mode code may not include a with statement
    //语法类型错误:严格模式代码不能包含with语句
    </script>

  • 相关阅读:
    linux C++类中成员变量和函数的使用
    使用linux backtrace打印出错函数堆栈信息
    R String 操作
    make
    *.efasta to fasta format transformation
    python os 库
    Ch12 Resampling statistics and bootstrapping
    Updating an R installation
    10 步让你成为更优秀的程序员
    Working with large datasets
  • 原文地址:https://www.cnblogs.com/punisher999/p/12342965.html
Copyright © 2020-2023  润新知