闭包的用途 可以读取函数内部的变量 让这些变量的值始终保持在内存中
function fn1(){ let a = 1 代码中的内部函数(fn2)就是闭包
可以把闭包简单理解成"定义在一个函数内部的函数" 是将函数内部和函数外部连接起来的一座桥梁 function fn2(){ 闭包就是能够读取其他函数内部变量的函数 document.write(a); } return fn2; } console.log( fn1() ) */ 通过这种方式 就可以得到fn1的局部变量a的值 / fn1()() / function fn(){} console.log(fn); */
变量提升
当你下面使用var的时候会出现变量提升的情况
var a => a = undefined (已经声明了
但是没有赋值,给了一个初始值叫做undefined )
console.log(a);
var a = '123';
var a = 123;
var a = 456;
console.log(a);
let 不存在变量提升,不能在还没有初始化的时候
使用变量,否则就给报错 下面的代码就不会被执行
console.log(a)
let a = '123'
console.log(123);
let不能够重复定义
let a = 123;
let a = 456;
console.log(a);
函数是js里面的一等公民
声明了function会提升函数到最前面
页面一加载的时候会先找有没有 var 和 function
如果发现有var 就会把变量预定义为undefined
如果发现有function 就会把function这个方法放在最前面