闭包的学习
1.什么是闭包?
1.可以函数内部变量的一个函数
2.定义在一个函数内部的函数
3.是将函数内部和函数外部链接起来的桥梁
基本案例:
function test1(){
let a = 100;
return test2(){
a++;
console.log(a);
}
}
const f = test1() //f是一个函数
f() //101
f() //102
2.什么是函数的预解析
变量和函数都存在预解析,在js中定义一个函数或者
一个变量的时候都会进行预解析
基本案例
var b= 'bar';
function a(){
var a = 1;
}
console.log(a); //undefine
console.log(b); //bar
//解析如下
var b;
function a(){
var a;
a = 1
}
b="bar"
3.什么是函数的arguments?
是函数收集接收参数的一个集合,可以叫做伪元素
面试案例
var a = 10;
function f1(){
var b= 2*a
var a = 20;
var c= a+1;
console.log(b); //NAN 2*undefined
console.log(c); //21
}
f1();