1、var声明作用域
function test(){
var message = 'hi';
}
test();
console.log(message); // 错误,此时的message是局部变量
function test(){
message = 'hi';
}
test();
console.log(message); // 正确,此时的message是全局变量
tips:虽然可以通过省略var操作符来定义全局变量,但是不推荐这么做
如果需要定义多个变量,可以在一条语句中用逗号分隔每个(及可选的初始化)
var message = 'hi',
found = false,
age = 20;
2、var声明提升
使用var时,下面的代码不会报错,这是因为使用这个关键字声明的变量会自动提升到函数作用域顶部:
function test(){
console.log(age);
var age = 26;
}
test(); // undefined
之所以不会报错,是因为ECMAScript在运行时把它看成等价于如下代码:
function test(){
var age;
console.log(age);
age = 26;
}
test();