概述
a. "use strict";
不再兼容es3的一些不规则语法。使用全新的es5规范
两种用法:
- 全局严格模式
- 局部函数内严格模式(推荐)
特点:
就是一行字符串,不会对不兼容严格模式的浏览器产生影响,不支持width、arguments、callee、caller
变量复制前必须声明
变量必须定义再使用
普通函数中的this指向undefined
函数的形参不准重名
局部this必须被赋值(Person.call(null/undefined) 赋值什么就是什么),拒绝重复属性和参数
b.es3.0和es5.0产生冲突的部分:
es5.0严格模式下:es3.0和es5.0产生冲突的部分就是用es5.0;反之用es3.0
示例1:全局严格模式
<script>
//es5.0严格模式下
"use strict";
function test() {
console.log(arguments.callee);
}
test();
</script>
示例2:局部函数内严格模式(推荐)
<script>
function demo() {
console.log(arguments.callee);
}
demo();
function test() {
//es5.0严格模式下
"use strict";
console.log(arguments.callee);
}
test();
</script>
c.width()
<script>
var obj = {
name: "obj",
}
var name = 'window';
function test() {
var name = 'score';
//with() 里面的代码按照正常的顺序执行,但是在width的()里添加对象的话
//则会将这个对象当做width要执行的代码体的作用域链的最顶端,也就是会
//改变作用域链
with(obj) {
console.log(name); //也就是这里的name会指向“obj"
}
}
test();
</script>
命名空间的用法:
<script>
var org = {
dp1: {
jc: {
name: 'abc',
age: 15
},
lin: {
name: 'ced',
age: 444
}
},
dp2: {
}
};
with(org.dp1.jc) {
console.log(name);
}
with(org.dp1.lin) {
console.log(name);
}
</script>
最后
以上就是大气秀发为你收集整理的es5--严格模式的全部内容,希望文章能够帮你解决es5--严格模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复