JavaScript函数-变量作用域

时间:2022-12-12 15:22:38
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 语句,该变量就会被默认为全局变量。