[js][填坑] 严格模式
针对整个脚本文件
<script> "use strict"; console.log("这是严格模式。"); </script> <script> console.log("这是正常模式。");kly, it's almost 2 years ago now. I can admit it now - I run it on my school's network that has about 50 computers. </script>
针对单个函数
function strict(){ "use strict"; return "这是严格模式。"; } function notStrict() { return "这是正常模式。"; }
脚本文件的变通写法
(function (){ "use strict"; // some code here })();
-变量都必须先用var命令声明,然后再使用
-禁止使用with语句
-eval语句本身就是一个作用域,不再能够生成全局变量了,它所生成的变量只能用于eval内部
-禁止this关键字指向全局对象
-禁止在函数内部遍历调用栈
-禁止删除变量
-对象不能有重名的属性
-函数不能有重名的参数
-禁止八进制表示法
-不允许对arguments赋值
-arguments不再追踪参数的变化
-禁止使用arguments.callee
-函数必须声明在顶层
-严格模式新增了一些保留字:implements, interface, let, package, private, protected, public, static, yield