JS严格模式下常见问题汇总
2016-05-18 15:25
204 查看
开启严格模式(”use strict”):
在全局代码的开始处加入
1:在对象中声明相同的属性名
例如:
var obj ={
‘name’: 1,
‘name’: 2
};
会抛出SyntaxError: Duplicate data property in object literal not allowed in strict mode.
2:在函数声明中相同的参数名
例如: “use strict”:
会抛出 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
在全局代码的开始处加入
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 基础函数_深入剖析变量和作用域
- javascript学习——块作用域和私有变量
- JSP中文乱码问题终极解决方案
- js 中文长字符截短&关键字符隐藏 自定义过滤器
- javascript节点
- Rollout学习2 JS和OC代码对照篇
- JavaScript生成GUID的算法
- JavaScript 跨域:window.postMessage 实现跨域通信
- js获取星期几
- 实现JavaScript的组成----BOM和DOM详解
- js中的prototype和基于prototype的继承总结
- JavaScript中getBoundingClientRect()方法详解
- [置顶] JSON 使用讲解
- jsp/servlet基础知识
- js操作数组的一些小技巧
- js面向对象(构造函数与继承)
- JS replace 全部替换
- js的随机数生成器,不再使用Math.random
- [转载]javascript 隐性类型转换步骤
- j2ee中的重定向和转发