关于javascript严格模式下七种禁止使用的写法
分享至javascript语言精髓与编程实践
开启严格模式(”use strict"):
在全局代码的开始处加入
在eval代码的开始处加入
在函数声明代码处加入
在new Function() 所传入的body参数块开始处加入
1:在对象中声明相同的属性名
例如: var obj ={
'name': 1,
'name': 2
};
会抛出SyntaxError: Duplicate data property in object literal not allowed in strict mode.
2:在函数声明中相同的参数名
例如: "use strict";
function fix(a,b,a) {
return a+b;
}
会抛出 SyntaxError: Strict mode function may not have duplicate parameter names .
3:不能用前导0声明8进制直接量
例如: var a = 012;
会抛出 SyntaxError: Octal literals are not allowed in strict mode.
4: 不能重新声明、删除或重写eval和arguments这两个标示符
var eval = ......;
会抛出 SyntaxError: Assignment to eval or arguments is not allowed in strict mode
5:用delete删除显示声明的标识符、名称和具名函数
function temp() {
'use strict';
var test = 1;
delete test;
}
会抛出 SyntaxError: Delete of an unqualified identifier in strict mode.
6.代码中使用扩展的保留字,例如 interface,let,yield,package,private等
会抛出SyntaxError: Unexpected strict mode reserved word
7.严格模式下是禁止使用with的
会抛出 SyntaxError: Strict mode code may not include a with statement
好了以上都是摘自书上,其实我并不使用严格模式的,但是这些知识还是要储备一些。
关于javascript严格模式下七种禁止使用的写法的更多相关文章
- Symbol -- JavaScript 语言的第七种数据类型
ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证 ...
- JavaScript严格模式下this指向
一般认为:严格模式下this不允许指向全局对象.是函数体是否处于严格模式! 如:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mod ...
- Javascript 严格模式下保留关键字
为了应对未来的版本,以下关键字在严格模式下禁止使用. implements interface let package private protected public static yield 示例 ...
- flink on yarn模式下两种提交job方式
yarn集群搭建,参见hadoop 完全分布式集群搭建 通过yarn进行资源管理,flink的任务直接提交到hadoop集群 1.hadoop集群启动,yarn需要运行起来.确保配置HADOOP_HO ...
- Javascript创建类的七种方法
/* 第一种定义类的方法 */var cls = new Object();cls.name = "wyf";cls.showName = function(){console.l ...
- Javascript 严格模式下不允许删除一个不允许删除的属性
如下代码,在严格模式下,如果删除 Object.prototype 浏览器会报错,目前 IE10 也支持 严格模式. <script> "use strict"; de ...
- 单例(Singleton pattern)模式的七种写法
转载请注明出处:http://www.cnblogs.com/smbk/ One: public class Singleton { private static Singleton instance ...
- 关于 Javascript 严格模式下多文件合并时注意
Javascript 在第一行使用 "use strict" 声明严格模式. 但是在多个 js 文件合并时就需要注意了,可能你的是严格模式,但别的文件不是,就会造成错误. 为什么使 ...
- javascript严格模式下的8点规则
[作用] [1]消除js语法的一些不合理.不严谨.不安全问题,减少怪异行为并保证代码运行安全 [2]提高编译器效率,增加运行速度 [使用] [1]整个脚本启用严格模式,在顶部执行:"use ...
随机推荐
- C++之旅(第一天)
基础知识 完全支持C语言 可以在C++引入C的头文件 #include <stdio.h> #include <iostream> int main() { } 输入和输出 C ...
- Druid学习之路 (四)Druid的数据采集格式
作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9715735.html 转载请注明出处 Druid的数据采集格式 Druid可以采集非标准化的数据诸如J ...
- Linux使用free命令查看实际内存占用
转自:http://www.cnblogs.com/pengdonglin137/p/3315124.html Linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free ...
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.3
Maven 导入项目时报错: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.3 ...
- springmvc获取bean
1.普通注解方式获取 2.springcontextholder获取 ChatHistoryService chatHistoryService = SpringContextHolder.getBe ...
- PHP递归算法
/** * 获取菜单 * @param number $id * @return multitype: */ public function menu($id = 0) { $menu = M ( ' ...
- React 常用插件库
js 加密 crypto-js (des加密,md5) crypto-js https://www.npmjs.com/package/crypto-js Mock联调 数据是前端开发过程中必不可少的 ...
- P(Y|X) 和 P(X,Y)
P ( x | y ):在Y发生的条件下,X发生的概率.P ( x , y )P(x,y)说明该事件与两个因素有关,比如设是因素A,B.P(x,y)=P{因素A处于x状态,因素B处于y状态}确切地说P ...
- MYSQL数据库里面的所有密码批量MD5加密
如果你的字段够长度的话:UPDATE users SET password = MD5(password);如果长度不够,可以先增加长度后再做,或者多建一列,完成后删除原来的列!(如passwd)UP ...
- C#的switch case注意
参数可以是 switch 语句中的 参数必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型. 所以用string也可以,6666