Skip to content

前端

localstorage

首页加载速度

防抖和节流

基础整理

执行上下文

首先从宏观的角度来说: JavaScript代码要想能够被执行,就必须先被V8引擎编译,编译完成之后才会进入到执行阶段,总结为六个字:先编译再执行。

调用栈

console.trace() 可以打印栈中的信息

调用栈是一种数据结构,它记录了我们在程序中的位置。如果我们运行到一个函数,这个时候JavaScript引擎其实是会为当前函数创建函数执行上下文,它就将该函数执行上下文放到栈顶,当从这个函数返回的时候,就会将这个函数执行上下文从栈顶弹出,这就是调用栈做的事情。也就是说执行上下文是通过调用栈来管理的。

var const let

var定义的变量存在变量提升,块级作用域对var无效。 let不会有变量提升,有块级作用域、函数作用域和全局作用域。

闭包

函数创建完,闭包就形成了,并且不能自动释放,可选择手动设置null进行释放闭包。

我将永远记住闭包的方法是通过背包的类比。当一个函数被创建并传递或从另一个函数返回时,它会携带一个背包。背包中是函数声明时作用域内的所有变量。

原型和原型链

深拷贝和浅拷贝

ES6 Class