JavaScript学习笔记(21)- ES5严格模式
JavaScript学习笔记。本笔记是基于在腾讯课堂《Web前端开发之JavaScript精英课堂【渡一教育】》课程学习过程中记录的一些提纲和关键点。
强烈推荐想要进行js入门学习来听听,尤其是前面姬成讲的基础知识点。
前述
现在浏览器调用的js方法是基于
ES3.0的和ES5.0的新增方法。
如果ES3.0的和ES5.0产生冲突时,使用ES3.0的方法;
严格模式的定义
ES3.0的和ES5.0产生冲突时,使用ES5.0的方法来解决,这种模式就是ES5.0的严格模式;
使用严格模式不在兼容ES3.0的一些不规则语法,使用全新的ES5.0规范。
严格模式的使用
在逻辑代码的最顶端加入字符串:"use strict",表示启用ES5.0的严格模式。
在严格模式下,一些方法不能被使用。比如:
"use strict"
function test() {
console.log(arguments.callee);
}
test();
执行代码会报错:
js_test29.html:17 Uncaught TypeError: ‘caller’, ‘callee’, and ‘arguments’ properties may not be accessed on strict mode functions or the arguments objects for calls to them
严格模式的两种使用方式
- 全局严格模式:在整段代码的最顶端添加
"use strict"; - 局部函数内严格模式:在该函数代码的最顶端添加
"use strict",推荐使用。
严格模式的使用会向下兼容,不会对不兼容的浏览器产生影响。
严格模式的规则
with方法不可用
"use strict"
with(document) {
write('abc');
}
arguments.callee方法不可用
func.caller方法不可用
变量赋值前必须声明
局部的this必须被赋值使用
预编译时,局部定义的this不再指向window,默认指向空,所以必须被赋值使用,而且this指向所赋值;如果没有赋值使用,则报错。
在全局里this还是指向window。
拒绝使用重复的参数和属性名
本节完。
