zoukankan      html  css  js  c++  java
  • 为什么使用 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、语句末尾建议使用分号,防止压缩代码导致出错

  • 相关阅读:
    ios正在使用NSDateComponents、NSDate、NSCalendar它的结论是在当前时间是在一段时间在一天。
    linux 核心学习书籍
    Hbase在的应用经验的统计
    09-使用for循环输出空心菱形(循环)
    [置顶] Android下实现自动关机的方法总结
    S3C3440看门狗驱动程序
    MySQL里求给定的时间是所在月份的第几个礼拜
    CheckBox in ListView
    根据复选框后面的描述文字进行选择的技巧
    C#中一些易混知识的比较
  • 原文地址:https://www.cnblogs.com/z-one/p/6727320.html
Copyright © 2011-2022 走看看