浅谈js严格模式 use strict

来源:互联网 发布:软件翻译公司 编辑:程序博客网 时间:2024/06/05 11:53
严格模式是一种特殊的运行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强安全性
"use strict":
1.不允许使用with语法
2.所有变量必须声明,不然赋值给未声明的变量会报错,而不是隐式声明全局变量
3.通过eval方法创建的变量,将被分为独立的作用于,外部代码不能访问
4.函数中的特殊对象arguments将为静态副本,不能与函数参数相互影响,无法修改参数
5.若使用call\apply传入null或undefined修改this时,this指向null或undefined,而不是window
6.禁止八进制字面量,如console.log(0123)等
7.eval\arguments等变为关键字,不能被使用作为变量名
8.一般函数(除对象调用的函数,或被bind\apply\call等修改过this的函数)调用时this指向null,而不是指向window
9.试图删除对象属性描述器configurable=false的属性时报错,而不是返回false或忽略
10.试图修改不可写属性(writable=false)时,报错而不是返回false或忽略。
11.arguments.caller\arguments.callee被禁用。
原创粉丝点击