1.8 注意

变量提升

声明变量将被提升至最顶部,但初始化值不会提升;

    var x = 7;

    var sum = x + y;
    console.log(x);
    console.log(y);
    console.log(sum);

    var y = 8;
  • 相当于
    var x, y;
    x = 7;

    var sum = x + y;
    console.log(x);
    console.log(y);
    console.log(sum);

    y = 8;

严格模式

  • use strict 开启严格模式,更加规范,推荐使用;
    "use strict";
    // code
不允许使用未声明的变量:

不允许删除变量或对象。

不允许删除函数。

不允许变量重名:

不允许使用八进制:

不允许使用转义字符:

不允许对只读属性赋值:

不允许对一个使用getter方法读取的属性进行赋值

不允许删除一个不允许删除的属性:

变量名不能使用 "eval" 字符串(等一些保留字):

由于一些安全原因,在作用域 eval() 创建的变量不能被调用:

禁止this关键字指向全局对象。

不允许 with (Math){x = cos(2)};