严格模式

2020-06-15  本文已影响0人  向上而活
  1. 理解:
  1. 目的/作用
    • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
    • 消除代码运行的一些不安全之处,为代码的安全运行保驾护航
    • 为未来新版本的Javascript做好铺垫
  2. 使用
  1. 语法和行为改变
    • 必须用var声明变量,否则报错
    • 禁止自定义的函数中的this指向window,否则报错
    • 创建eval作用域
    • 对象不能有重名的属性,否则报错
<script type="text/javascript">
    'use strict';
    var age = 12;
    console.log(age);
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    new Person('kobe', 39);
    setTimeout(function () {
        console.log(this);//window
    }, 1000);

    //* 创建eval作用域
    var name = 'kobe';
    eval('var name = "anverson";alert(name)');//严格模式下 创建eval自己的作用域, 不会改变eval前面的name的值
    console.log(name);//kobe  如果不是严格模式 将输出anverson

    var obj = {
        name : 'kobe',
        name : 'weide'
    };
    console.log(obj);

</script>
上一篇 下一篇

猜你喜欢

热点阅读