美文网首页
es5严格模式(“use strict”)学习笔记

es5严格模式(“use strict”)学习笔记

作者: 云梦之浦 | 来源:发表于2017-11-17 19:19 被阅读339次
  • 最近在看一些框架源代码的时候看见好多都在代码开头用了“use strict”,自己不是很了解,就查阅相关资料学习了一下,做了一下笔记。
  • 严格模式就是让javascript在更严格的条件下运行。
  • 其目的有以下几个:
    1. 消除javascript语法的不严谨和一些不合理之处,减少一些怪异行为。
    2. 消除代码运行的不安全之处,保证代码的运行安全。
    3. 提高编译器的效率,增加编译速度。
    4. 为未来新版本的javascript做好铺垫。
    
  • 同样的代码在严格模式下可能会有不一样的运行结果,一些在正常模式下可以运行的代码语句,在严格模式下可能将不能运行,掌握这些内容将有助于更细致深入的了解javascript,提升代码水平。
  • 进入标志就是 "use strict";老版本那些不支持的浏览器会把他当做一串普通的字符串处理。
  • 有两种调用方法:
    1. 针对整个脚本文件,放在脚本文件的第一行。
    2. 针对单个函数,将"use strict"放在函数体的第一行,则整个函数以“严格模式”运行。
    3. 由于第一种方法不利于文件合并,所以更好的做法是借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数当中。
    
    (function () {
        "use strict";
        // some code here
      })
    
  • 严格模式对javascript的语法和行为都做了一些改变:
    1. 全局变量要显示的声明,否则会报错;必须先声明变量然后再使用。
    2. 静态绑定:
        a):禁止使用with语句
        b):正常模式下javascript语言有两种作用域(scope),即全局作用域和函数作用域。严格模式创建了第三种作用域,eval作用域。正常模式下,eval语句的作用域取决于它本身是处在全局作用域还是函数作用域。严格模式下eval本身就是一个作用域,不在能够生成全局变量了,他所生成的变量只能用于自身内部。
    
  • 增强的安全措施:
    1. 禁止this关键字指向全局对象。
    2. 禁止在函数内部遍历调用栈。
        ```
             function f1(){
                      " use strict";
                        f1.caller; //报错
                         f1.arguments; //报错
                }
        ```
    
  • 禁止删除变量:严格模式下将不能删除变量,只有configurable设置为true的才能删除。
  • 显式报错
  • 重名错误:
    1. 对象不能有重名的属性
    2. 函数不能有重名的函数
    
  • 禁止八进制表示法
  • arguments的限制:
    1.不允许对arguments进行赋值。
    2. 不再追踪参数的变化。
    3. 禁止使用arguments.callee,无法在匿名函数内部调用自身了
    
  • 函数必须声明在顶层
  • 增加了一些保留字,用这些保留字命名变量将会报错

相关文章

  • ES5总结

    es5总结 1. strict模式 严格模式,限制一些用法,'use strict'; 为什么使用严格模式: 消除...

  • ES5 ES6

    ES5 严格模式: "use strict"; 严格模式对正常的 JavaScript语义做了一些更改。严格模式通...

  • 2018-12-15

    ES5 严格模式: "use strict"; 严格模式对正常的 JavaScript语义做了一些更改。严格模式通...

  • ES5-6-7学习

    ES5中的特性 一、严格模式 'use strict' 1. 理解: 除了正常运行模式(混杂模式),ES5添加了第...

  • 严格模式的限制

    "use strict";ES6 的模块自动采用严格模式;严格模式是 ES5 引入的; 严格模式主要有以下限制。 ...

  • JavaScript - 基础 - 2

    #JavaScript 严格模式(use strict) JavaScript 严格模式(strict mode)...

  • es5严格模式(“use strict”)学习笔记

    最近在看一些框架源代码的时候看见好多都在代码开头用了“use strict”,自己不是很了解,就查阅相关资料学习了...

  • 整理JavaScript

    JavaScript 严格模式(use strict) "use strict"; 通过严格模式,在函数内部选择进...

  • js 严格模式,数据驱动编程思想

    1- es5中的严格模式,就是让js这门语言,更加规范 2- 如何开启严格模式? 'use strict' 这句话...

  • JavaScript严格模式

    严格模式 在ES5引入,为了让团队开发更为便利、严谨,使用"use strict"开启严格模式。 变量必须声明之后...

网友评论

      本文标题:es5严格模式(“use strict”)学习笔记

      本文链接:https://www.haomeiwen.com/subject/ebzdvxtx.html