IIFE,立即执行函数,我喜欢叫自执行函数
变量提升,变量可以先使用再声明,ES5中,变量和函数的声明都将被提升到函数最顶部。变量的声明可以提升,但初始化不会提升,也就是var a 可以提升,var a=2 不能提升。ES6中没有变量提升。
var fn=function(){} 函数内部变量不会提升,只有函数名fn会变量提升,只有这个函数被调用时内容才会初始化。
function fn(){} 函数内部的变量会提升,函数内部的变量会发生变量提升
异步队列,事件绑定,setTimeout等都是属于异步,js是单线程执行任务的,要在同步队列执行完后才会执行
高阶函数,一个函数作为另一个函数的参数
链式作用域,子函数可以访问父级函数的所有变量
块级作用域,ES5中,不能声明块级变量,在for循环里声明的变量,循环结束还是可以访问,可以用IIFE实现块级作用域,让循环结束后销毁变量。ES6中的let关键字声明的变量是具有块级作用域的变量
内存泄露,不再用到的内存,没有及时释放,就叫做内存泄漏
网友评论