进入标志:

  "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、语句末尾建议使用分号,防止压缩代码导致出错

为什么使用 use strict的更多相关文章

  1. CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)

    原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...

  2. cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven'.

    spring 配置文件报错报错信息:cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be ...

  3. How to Disable Strict SQL Mode in MySQL 5.7

    If your app was written for older versions of MySQL and is not compatible with strict SQL mode in My ...

  4. PHP中Strict Standards错误解决方法二

    在PHP5.3.3 中安装wordpress 3.0.1 ,在安装时出现错误:Strict Standards: PHP Strict Standards: Declaration of Walker ...

  5. PHP Strict Standards:问题解决

    异常信息: ( ! ) Strict standards: Declaration of SugarEmailAddress::save() should be compatible with tha ...

  6. 带有“非简单参数”的函数为什么不能包含 "use strict" 指令

    非简单参数就是 ES6 里新加的参数语法,包括:1.默认参数值.2.剩余参数.3.参数解构.本文接下来要讲的就是 ES7 为什么禁止在使用了非简单参数的函数里使用 "use strict&q ...

  7. 已解决:Strict Standards: Only variables should be passed by reference in

    今天安装ecshop的时候最上面出现了一个错误提示:Strict Standards: Only variables should be passed by reference in F:\www.x ...

  8. Javascript use strict模式和对象

    use strict 只能出现在脚本代码的开始或者函数体的开始.任何实体语句之前.Javascript的具体实现将它们解析为解释器自有的指令.这个指令的目的是说明后续的代码将会解析为严格代码. ECM ...

  9. struts2 CVE-2012-0392 S2-008 Strict DMI does not work correctly allows remote command execution and arbitrary file overwrite

    catalog . Description . Effected Scope . Exploit Analysis . Principle Of Vulnerability . Patch Fix 1 ...

  10. perl Can't use string Cxxx) as a symbol ref while "strict refs" in use at XXXX.pl错误

    今天写脚本遇到Can't use string ("bond2     Link encap:InfiniBand ") as a symbol ref while "s ...

随机推荐

  1. [权威指南]学习笔记——第1、2章 MongoDB介绍和基础知识

    安装目录:C:\Program Files\MongoDB\Server\3.2 Bin:..\..\Program Files\MongoDB\Server\3.2\bin 启动命令:mongod ...

  2. java如何区分同时继承的父类和实现的接口中相同的方法

    基类代码: public class Father { public Father() { System.out.println("基类构造函数{"); show(); Syste ...

  3. (转)Hibernate框架基础——映射普通属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52739871 持久化对象与OID 对持久化对象的要求 提供一个无参的构造器.使Hibernat ...

  4. Vue指令6:v-show

    根据表达式的真假值来渲染元素 用法大致一样: <h1 v-show="ok">Hello!</h1> 不同的是带有 v-show 的元素始终会被渲染并保留在 ...

  5. DWG转PDF

    DWG转PDF DWG转换PDF有两种方法,一种是利用PDF打印机,一种是利用专业软件: 利用PDF打印机最直接,但是不能批量打印,下面讲一下利用专业软件如何进行批量转换,在这里以梦想CAD软件(Mx ...

  6. react native 从头开始

    1.react-native run-android 报错SDK location not found. Define location with sdk.dir in the local.prope ...

  7. 向appstore提交app流程

    http://www.cocoachina.com/newbie/tutorial/2013/0508/6155.html http://blog.csdn.net/holydancer/articl ...

  8. UVA - 10410 Tree Reconstruction(栈处理递归)

    题目: 给出一棵树的BFS和DFS序列,输出这棵树中每个结点的子结点列表.BFS和DFS序列在生成的时候,当一个结点被扩展时,其所有子结点应该按照编号从小 到大的顺序访问. 思路: 一开始是想根据BF ...

  9. Python反射、异常处理

    反射 :字符串到对象属性的映射 hasattr(obj,string), 判断对象obj里面是否有叫string的字段或方法 getattr(obj,string) 获取obj对象里名叫string的 ...

  10. 关于图片预览使用base64在chrome上的性能问题解决方法

    在开发后台上传图片的功能时候使用base64预览图片,结果在传入大量图片后导致chrome崩溃,代码如下 var img = new Image(); var render = new FileRea ...