• 为什么使用 use strict


    进入标志:

      "use script";

    使用方式:

      可以在 js 代码的第一行,也可以使用在函数中。但是写在 js 代码第一行不利于文件合并,因此可以写在一个自调用函数的第一行

    使用目的:

      解决 javascript 的不合理不严谨以及不安全的地方,提高编译效率,增加运行速度。为以后的 javascript 做更好的铺垫。

    规定:

    1、变量声明后才能使用

    2、限制一些动态绑定:禁止使用 width 语句、创设 eval 作用域(创建的变量只能在 eval 语句中使用)

    3、增强安全措施:禁止 this 指向全局对象(window->undefined)、禁止在函数内部遍历调用栈(caller/arguments)

    4、禁止删除变量(只有 configurable 设置为 true 的对象才能被删除,delete 对象)

    5、显示报错:修改对象的只读属性、使用 get 方法读取的属性进行赋值、对禁止扩展的对象添加属性、删除一个不可删除的属性

    6、重命名:对象不能有同名属性、函数不能有同名参数

    7、禁止八进制表示法,在 ES5 中也修改了 parseInt() 的行为,如果传入八进制数字,会被当作是以0开头的十进制字面量

    8、arguments 对象限制:不允许对 arguments 赋值、不再追踪参数的变化、淘汰 arguments.callee 和 arguments.aller

    9、不允许在非函数的代码块内声明函数

    10、增加部分关键字和保留字

    11、语句:语句末尾建议使用分号,防止压缩代码导致出错、条件控制语句始终使用代码块,即使代码块中只有一条语句

    好处:

    1、帮助检查对象的重复键

    2、未声明变量,导致变量暴露在全局,导致重写覆盖等

    3、提示函数重复参数

    4、限制函数的arguments,修改 eval 函数,增加 eavl 作用域,修改 this 指向;防止因不合适的书写导致的错误

    5、增加了部分保留字,便于以后 javascript 代码过度

    6、语句末尾建议使用分号,防止压缩代码导致出错

  • 相关阅读:
    Spring源码分析(五)获取Document
    Spring源码分析(四)容器的基础XmlBeanFactory
    Spring源码分析(三)容器核心类
    Spring源码分析(二)容器基本用法
    day23 框架之基础加强
    Java web项目综合练习(Estore)
    第16 天 JavaWEB过滤器和监听器技术
    第17天 笔记 文件上传下载
    Javaweb 第15天 web练习和分页技术
    【剑指offer】数组中的逆序对,C++实现
  • 原文地址:https://www.cnblogs.com/z-one/p/6727320.html
Copyright © 2020-2023  润新知