为什么使用 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、语句末尾建议使用分号,防止压缩代码导致出错
为什么使用 use strict的更多相关文章
- 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地址& ...
- 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 ...
- 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 ...
- PHP中Strict Standards错误解决方法二
在PHP5.3.3 中安装wordpress 3.0.1 ,在安装时出现错误:Strict Standards: PHP Strict Standards: Declaration of Walker ...
- PHP Strict Standards:问题解决
异常信息: ( ! ) Strict standards: Declaration of SugarEmailAddress::save() should be compatible with tha ...
- 带有“非简单参数”的函数为什么不能包含 "use strict" 指令
非简单参数就是 ES6 里新加的参数语法,包括:1.默认参数值.2.剩余参数.3.参数解构.本文接下来要讲的就是 ES7 为什么禁止在使用了非简单参数的函数里使用 "use strict&q ...
- 已解决:Strict Standards: Only variables should be passed by reference in
今天安装ecshop的时候最上面出现了一个错误提示:Strict Standards: Only variables should be passed by reference in F:\www.x ...
- Javascript use strict模式和对象
use strict 只能出现在脚本代码的开始或者函数体的开始.任何实体语句之前.Javascript的具体实现将它们解析为解释器自有的指令.这个指令的目的是说明后续的代码将会解析为严格代码. ECM ...
- 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 ...
- 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 ...
随机推荐
- 初始MongoDB------将MongoDB创建为Windows服务
上一遍我写的是关于基本的MongoDB的安装,可能不是很详细,也写得很不好,不过这次我们会详细的说说,如果将MongoDB部署在你的Windows电脑上. 1.配置环境变量 如果每次都要在CMD进入M ...
- docker 转载
写的非常好的一篇文章,不知道为什么被删除了. 利用Google快照,做个存档. 快照地址:地址 作者地址:青牛 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 do ...
- JAVA基础——链表结构之双端链表
双端链表:双端链表与传统链表非常相似.只是新增了一个属性-即对最后一个链结点的引用 如上图所示:由于有着对最后一个链结点的直接引用.所以双端链表比传统链表在某些方面要方便.比如在尾部插入一个链结点.双 ...
- P1060 开心的金明(洛谷,动态规划递推,01背包轻微变形题)
题目链接:P1060 开心的金明 基本思路: 基本上和01背包原题一样,不同点在于这里要的是最大重要度*价格总和,我们之前原题是 f[j]=max(f[j],f[j-v[i]]+p[i]); 那么这里 ...
- 魂酥的LNOI2019滚粗记
$Day -???$ 高一下终于开始了 在开学文化课考试的水题之下混了个(成绩)前排 于是我便油然而生一种自信 我!要!进!省!队! 讲句真话我这么想的时候连自己都觉得自己是个十足的沙雕 我又不是zw ...
- 微信小程序开发过程中tabbar页面显示的相关问题及解决办法!
在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰.为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示ta ...
- 作为一个程序员,分享一下我自己常用的几款非常方便的chrome插件
作为一名资深码农,结合身边一群IT民工的真实体验,小编有那么一点权威给各位推荐几款程序员必备.常用的chrome扩展插件. 1.Click&Clean Click&Clean插件可以监 ...
- Windows 硬件开发人员怎样选择代码签名证书类型
在建立 Windows 开发人员中心硬件仪表板帐户之前,你需要获取代码签名证书以保护数字信息的安全.此证书是用于建立你的公司对你所提交代码的所有权的接受标准.它让你可以用数字形式签署 PE 二进制文件 ...
- leetcode 19.删除链表的第n个节点
删除链表的第n个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第 ...
- 树上启发式合并(DSU on tree)
//heavy-light decomposition style .//http://codeforces.com/blog/entry/44351 int cnt[maxn]; bool big[ ...