• JavaScript-严格模式


    一、严格模式和普通模式的不同?

      1、严格 ==》 变量必须通过var进行声明

      2、严格 ==》with被禁用

      3、严格 ==》eval作用域,eval()内的变量外面是读取不到的。

      4、严格 ==》禁止this关键字指向全局变量

      5、严格 ==》禁止函数内部遍历调用栈

      6、严格 ==》argunments对象的限制:argunments是函数的参数对象,严格模式做了修改:

        不允许对argunments赋值

        argunments不再追踪参数的变动

        禁止使用argunments,无法在匿名函数内部调用自身

          例子:var fn=function(num){

               num+=100;

               alert(num);

               alert(argunments[0]);

              }

              fn(100);

          结果:普通:200 200   严格:200 100

      7、严格 ==》禁止删除变量

      8、严格 ==》对禁止

    5、严格 ==》

    5、严格 ==》

    5、严格 ==》

    二、

      with 语句用于设置代码在特定对象中的作用域。(在低版本的浏览器中,会有内存泄露的情况,尽量不要使用)

    三、严格模式

    <script>
      "use strict"

    <、script>

      ****with

    <script>

      var obj={};

      var a=2;

      var b=3;

      with(obj){

        alert(a+b);  

      } 

    </script>  

      结果是:5

    如果是在严格模式下,就会报错,因为,严格模式下,with是不被承认的

    <script>

      "use strict"          //严格模式

      var obj={};

      var a=2;

      var b=3;

      with(obj){

        alert(a+b);  

      } 

    </script>

      结果是:报错

      ****this

      严格模式下,构造函数是会报错的,原因在于this

      //"use strict"

      var Cat=function(name)
      {
        this.name=name;
        this.say=function()
        {
          alert(this.name);
        }
      }
      Cat("猫咪");
      window.say();
      console.log(window);

      

      ****eval作用域

      "use strict"
      //严格模式下,会报错,因为eval()内的变量是读取不到的,只能在eval()内读取
      eval("var s=200;alert(s);");
      alert(s);
      //普通模式下,会报错,因为eval()内的变量,函数外面是不能使用的
      /* var abc=function()
      {
        eval('var s=200;');
      }
      abc();
      alert(s);
      */

  • 相关阅读:
    ant desigon Upload控件能否提供隐藏删除图标的属性以及鼠标停留在删除图标上的提示文字怎么设置为中文
    2月5日进度
    2月4日学习进度
    2月3日学习进度
    2月2日学习进度
    大数据之linux环境下jdk hadoop以及hbase,hive等配置
    MVC实例
    MVC简介
    23种设计模式
    xxx系统可用性和易用性分析
  • 原文地址:https://www.cnblogs.com/xiaoyangtian/p/7967848.html
Copyright © 2020-2023  润新知