JavaScript的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行.这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting). console.log(a); var a = 1; 上面代码首先使用console.log方法,在控制台(console)显示变量a的值.这时变量a还没有声明和赋值,所以这是一种错误的做法,但是实际上不会报错.因为存在变量提升,真正运行的是下面的代码. var a; console.log(a); a…