1、代码示例
if (true) { var num = 1 } console.log(num) // 输出 1
for (var i = 0; i < 2; i++) { // TODO } console.log(i) // 输出 2
function getNum() { var local = 1; console.log("getNum"); } getNum(); // 输出 "getNum" console.log(typeof local); // 输出 undefined可以看到,定义在 if 或者 for 这样的代码块中(大括号包含的代码)变量,它在代码块之外是可见的,但是如果变量是在某个函数中定义的,那么它在函数以外的地方是不可见的。这是因为在 Js 中变量的定义并不是以代码块作为作用域的,而是以函数作为作用域的,也就是说函数外部无法访问函数内部定义的变量。另外需要注意的是,在全局环境为 window对象时(即web浏览器中),我们声明一个变量时如果没有使用 var 语句,该变量就会被默认为全局变量。