zoukankan      html  css  js  c++  java
  • 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);
      */

  • 相关阅读:
    font-weight:bolder与设置数值的区别
    纯CSS3打造圆形菜单
    CSS Specificity
    控制页面内跳转
    解决Python操作MySQL中文乱码的问题
    字体图标font-awesome
    linux下安装使用MySQL 以及 python mysqldb 遇到的问题
    CocosCreator游戏开发(二)SocketIO简易教程
    CocosCreator游戏开发---菜鸟学习之路(一)资料整理
    2017已经接近尾声,然而我却什么都没干成
  • 原文地址:https://www.cnblogs.com/xiaoyangtian/p/7967848.html
Copyright © 2011-2022 走看看