Day2-JS-严格模式
JavaScript 严格模式(use strict)
"use strict" 的目的是指定代码在严格条件下执行。
严格模式下你不能使用未声明的变量。
一、一个简单的实例
<h1>使用 "use strict":</h1> <h3>不允许使用未定义的变量。</h3> <p>浏览器按下 F12 开启调试模式,查看报错信息。</p> <script> "use strict"; x = 3.14; // 报错 (x 未定义) </script>
===注意点。这个“use struct”也是由作用域的,如果在函数内部声明的话 (只在函数内使用严格模式)
===为什么使用严格模式:
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
====不允许删除变量或对象\不允许删除函数\不允许变量重名\不允许使用八进制\不允许使用转义字符:
<h1>使用 "use strict":</h1> <h3>不允许删除变量或对象。</h3> <p>浏览器按下 F12 开启调试模式,查看报错信息。</p> <script> "use strict"; var x = 3.14; delete x; </script>
===不允许对只读属性赋值
<h1>使用 "use strict":</h1> <h3>不允许对只读属性赋值。</h3> <p>浏览器按下 F12 开启调试模式,查看报错信息。</p> <script> "use strict"; var obj = {}; Object.defineProperty(obj, "x", {value:0, writable:false}); obj.x = 3.14; // 报错 </script>
保留关键字
为了向将来Javascript的新版本过渡,严格模式新增了一些保留关键字
- implements
- interface
- let
- package
- private
- protected
- public
- static
- yield
==注意:"use strict" 指令只允许出现在脚本或函数的开头
小知识点:
①switch括号中的东西和case 前面的东西 的比较是 (===)进行比较的
②
③对象可以使用名字来作为索引