JavaScript严格模式与非严格模式之间的区别
2017-08-30 00:45
176 查看
严格模式 | 非严格模式 |
---|---|
禁止使用with语句 | 允许使用with语句 |
所有变量要先声明 | 使用未声明的变量将隐式声明为全局变量 |
函数(非方法)中的this是 undefined | this是全局对象 |
call()和 apply()传入的第一个值不会被转换 | call()和 apply()传入的第一个值如果是 null和 undefined,则会被全局对象取代,如果是原始值则转换为对应的包装对象 |
给只读属性和不可扩展的对象创建新成员将抛出类型错误异常 | 只是简单的操作失败 |
传入eval()的代码不能在定义变量和函数 | 变量和函数定义在eval()创建的新作用域中 |
函数中的arguments对象拥有传入函数值的静态副本 | |
delete后跟非法标识符将抛出语法错误异常 | 只是简单的返回false |
delete删除不可配置的属性将抛出类型错误异常 | 只是简单的返回false |
在对象直接量中定义多个同名属性将产生语法错误 | 不会报错 |
函数声明存在多个同名的参数将产生语法错误 | 不会报错 |
不允许使用八进制直接量 | 某些实现是允许的 |
eval和 arguments当作关键字,并且不允许更改 | |
限制了对栈的检测能力,arguments.caller和 arguments.callee将抛出类型错误异常 |
测试是否开启严格模式
var hasStrictMode = function() { "use strict"; return this === undefined } 转载来自:http://blog.csdn.net/abyss521/article/details/52389650
相关文章推荐
- 严格模式和非严格模式之间的区别
- javascript 语句和严格模式(三)
- javascript声明提升现象及严格模式
- 架构,框架,模式,构件,组件,中间件之间区别
- JavaScript 严格模式详解
- Effective JavaScript 读书笔记 1 严格模式
- 【拿来主义】Javascript 严格模式详解
- Javascript 严格模式use strict详解
- Javascript dom0级和dom2级事件之间的区别
- Javascript 严格模式详解
- Android四种启动模式的简单了解以及不同模式之间的Intent数据传递的区别
- Javascript 严格模式详解
- Javascript 严格模式详解 strict 模式
- Doctype严格模式和混杂模式的区别及意义?
- [置顶] strict严格模式和非严格模式的区别
- JAVASCRIPT----style 中visibility和display之间的区别(ZT)
- JavaScript的严格模式
- Javascript 严格模式有什么限制
- Javascript 严格模式详解
- javascript的严格模式