js中严格模式与普通模式区别
2015-10-30 13:30
495 查看
1. 不允许用with。
2. 所有变量必须声明,赋值给未声明的变量报错,而不是隐匿创建全局变量。
3. eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。
4. 函数中的特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改参数变量会相互影响。
5. 删除configurable=false的属性时报错,而不是忽略。
6. 对象字面量重复属性名报错。
7. 禁止八进制字面量,如010(八进制的8)。
8. 严格模式下eval、arguments变为关键字,不能用作变量名。
9. 一般函数调用时(不是对象的方法调用,也不使用apply/call/bind等修改this)this指向null,而不是全局变量。
10. 试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。
11. arguments.caller,arguements.callee被禁用
2. 所有变量必须声明,赋值给未声明的变量报错,而不是隐匿创建全局变量。
3. eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。
4. 函数中的特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改参数变量会相互影响。
5. 删除configurable=false的属性时报错,而不是忽略。
6. 对象字面量重复属性名报错。
7. 禁止八进制字面量,如010(八进制的8)。
8. 严格模式下eval、arguments变为关键字,不能用作变量名。
9. 一般函数调用时(不是对象的方法调用,也不使用apply/call/bind等修改this)this指向null,而不是全局变量。
10. 试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。
11. arguments.caller,arguements.callee被禁用
相关文章推荐
- JavaScript柯里化
- JS对日期的相关操作
- JavaScript js无间断滚动效果 scrollLeft方法 使用模板
- Javascript数组
- 10个可创建交互式地图的免费JavaScript工具
- jsp实现生成中国国旗图片效果代码
- 纯jsp实现的倒计时动态显示效果完整代码
- js压缩图片(ajax上传)
- 解决gson实体转json时当字段值为空时,json串中就不存在该属性
- JSP页面数据展示:分组数据展示
- JS(JQ)分页 个人查看,没注释
- JS实现带提示的星级评分效果完整实例
- 仿知乎程序(三)读取webService,解析json,volley以及PullToRefreshListView的使用
- js实现 页面显示系统时间(中文显示星期)、动态倒计时页面跳转
- Javascript内存泄漏
- .net mvc web api 返回 json 内容,过滤值为null的属性
- JS中调用输出中文乱码怎么办?一步轻松解决
- js中Math.random()生成指定范围数值的随机数
- javascript 学习总结(七)String对象
- JavaScript传参的问题