深度解析 call 和 apply 原理、使用场景及实现

阅读更多 →

前端八股文

HTTP 和 HTTPShttp 和 https 的基本概念http: 是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。https:是以安全为目标的 HTTP 通道,即 HTTP 下 加入 SSL 层进行加密。其作用是:建立一个信息安全
阅读更多 →

JavaScript深入之重新认识箭头函数的this

我们知道this绑定规则一共有5种情况:默认绑定(严格/非严格模式)隐式绑定显式绑定new绑定箭头函数绑定其实大部分情况下可以用一句话来概括,this总是指向调用该函数的对象。但是对于箭头函数并不是这样,是根据外层(函数或者全局)作用域(词法作用域)来决定this。对于箭头函数的this总结如下:箭
阅读更多 →

JavaScript深入之史上最全--5种this绑定全面解析

阅读更多 →

JavaScript深入之从作用域链理解闭包

阅读更多 →

JavaScript深入之闭包面试题解

阅读更多 →

深入浅出图解作用域链和闭包

红宝书(p178)上对于闭包的定义:闭包是指有权访问另外一个函数作用域中的变量的函数 关键在于下面两点:是一个函数能访问另外一个函数作用域中的变量对于闭包有下面三个特性:闭包可以访问当前函数以外的变量function getOuter(){ var date = '815'; f
阅读更多 →

JavaScript深入之4类常见内存泄漏及如何避免

垃圾回收算法常用垃圾回收算法叫做标记清除 (Mark-and-sweep) ,算法由以下几步组成:垃圾回收器创建了一个“roots”列表。roots 通常是代码中全局变量的引用。JavaScript 中,“window” 对象是一个全局变量,被当作 root 。window 对象总是存在,因此垃圾回
阅读更多 →

JavaScript深入之带你走进内存机制

JS内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。 其中栈存放变量,堆存放复杂对象,池存放常量,所以也叫常量池。昨天文章介绍了堆和栈,小结一下:基本类型:–> 栈内存(不包含闭包中的变量)引用类型:–> 堆内存今日补充一个知识点,就是闭包中的变量并不保存中栈内存
阅读更多 →

JavaScript深入之内存空间详细图解

堆栈的内容和执行顺序我就不说了,前面两篇已经介绍过了。但是今天补充一个知识点:某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行。对于下面的递归就会无限制的执行下去,直到超出调用堆栈的实际大小,这个是浏览器定义的。function foo() { foo
阅读更多 →