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