作用域
作用域一般分为两种: 全局作用域和局部作用域
全局作用域: 做外层的变量,能够被内层作用域访问到;
<script>
var globalVar = 'Global variables';
function fn() {
console.log(globalVar );
}
fn(); // Global variables
</script>
局部作用域: 仅在固定的代码段有效
<script>
function fn() {
var localVar = 'local variables';
console.log(localVar );
}
fn(); // local variables
</script>
注: 在局部声明变量需要加上 var const let 等声明 不然会造成以外的全局变量
function fn () {
variables = ‘他的作用域?’;
}
fn () ;
console.log(variables); // 能够输出 证明variables是有一个全局的变量
闭包
在此之前先说
function fn() {
var b = 5;
console.log(a+b);
}
var a = 1;
fn();
上面代码执行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
未完待续…