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

JavaScript深入之执行上下文栈和变量对象

前端 

JS是单线程的语言,执行顺序肯定是顺序执行,但是JS 引擎并不是一行一行地分析和执行程序,而是一段一段地分析执行,会先进行编译阶段然后才是执行阶段。翠花,上代码例子一:变量提升foo; // undefinedvar foo = function () { console.log('

理解JavaScript 中的执行上下文和执行栈

前端 

执行上下文是当前 JavaScript 代码被解析和执行时所在环境的抽象概念。执行上下文的类型执行上下文总共有三种类型全局执行上下文:只有一个,浏览器中的全局对象就是 window 对象,this 指向这个全局对象。函数执行上下文:存在无数个,只有在函数被调用的时候才会被创建,每次调用函数都会创建一

Blazor 未登录跳转Debug时NavigationManager报错修复

Blazor 

在MainLayout里面设置未登录时跳转到/login,NavigationManager会在Debug模式下抛出如下错误"Microsoft.AspNetCore.Components.NavigationException: Exception of type 'Micros