您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
ES5_严格模式
发布时间:2019-10-04 15:02:24编辑:雪饮阅读()
定义变量必须用var声明
非严格模式下,如下示例运行成功,不会报错:
<script type="text/javascript">
username='kobe';
console.log(username);
</script>
严格模式下会报该变量未定义:
<script type="text/javascript">
'use strict';
username='kobe';
console.log(username);
</script>
严格模式下必须使用var来声明
禁止自定义的函数中的this指向window
如下示例中定义了一个方法,当该方法做为普通方法被调用,由于其this指向全局,则会被报错,而当做为构造方法进行new对象则不会报错。因为严格模式禁止自定义函数的this指向全局的window:
<script type="text/javascript">
'use strict';
function Person(name,age){
this.name=name;
this.age=age;
}
var person=new Person('xy',23);
console.log(person);
Person('xy',23);
</script>
eval支持作用域
示例:
<script type="text/javascript">
'use strict';
var str='NBA';
eval('var str="NBC";alert(str);');
alert(str);
</script>
如上示例,该示例中在eval中声明了一个和window相同的变量,而这在非严格模式下是会覆盖掉window中同名变量值的,但在严格模式下则仅表示eval内部有该变量,并不覆盖window的同名变量。
关键字词:es5,严格模式,use strict
相关文章
-
无相关信息