js进阶之二 作用域 & 闭包

作用域

作用域一般分为两种: 全局作用域和局部作用域

全局作用域: 做外层的变量,能够被内层作用域访问到;


局部作用域: 仅在固定的代码段有效


注: 在局部声明变量需要加上 var const let 等声明 不然会造成以外的全局变量

function fn () {
	variables = ‘他的作用域?’;
}
fn () ;
console.log(variables); // 能够输出  证明variables是有一个全局的变量

闭包

在此之前先说

function fn() {
	var b = 5;
	console.log(a+b);
}
var a = 1;
fn();

js进阶之二 作用域 & 闭包_第1张图片

上面代码执行a+b时,找a变量现在在fn1查找,没有再上层查找window;同理找b,运算完成之后销毁fn1。这是b的也相应的销毁。

function fn() {
	var b = 5;
	return function(){
		console.log(a+b);
	}
}
var a = 1;
var closure = fn();
closure(); // 6

未完待续…

你可能感兴趣的:(js基础,作用域,作用域链,闭包)