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)};