刚看《数据结构与算法JavaScript描述》上说:
JavaScript中的变量默认是全局变量,严格地说,甚至不需要在使用前进行声明。
那是不是说可以这么写呢:
console.log(x);
这样的不行的,“不需要在使用前进行声明”并不是说不需要声明,而是说可以先使用后声明:
console.log(x);
var x = 100;
是不是觉得跟C++或Java的习惯很不同,ES6中let声明的变量纠正了这个用法,即let变量不允许在声明前使用:
console.log(x);
let x = 100;
上面这么写会报错。