首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端开发面试题答案(三)

当需要从局部函数查找某一属性或方法时,如果当前作用没有找到,就会上溯到上层作用查找, 直至全局函数,这种组织形式就是作用链。 12、谈谈This对象理解。...A: 不知道(没有被告诉) 16、写一个通用事件侦听器函数。...parseInt() 函数能解析一个字符串,并返回一个整数,需要两个参数 (val, radix), 其中 radix 表示要解析数字基数。...闭包是指有权访问另一个函数作用域中变量函数,创建闭包最常见方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数局部变量,利用闭包可以突破作用,将函数内部变量和方法传递到外部。...; 消除代码运行一些不安全之处,保证代码运行安全,限制函数arguments修改,严格模式下eval函数行为和非严格模式也不相同; 提高编译器效率,增加运行速度; 为未来新版本Javascript

77330

怎样修复 Web 程序中内存泄漏

当然,还有许多其他导致泄漏内存情况,这些是最常见。 识别内存泄漏 这是困难部分。首先要说是,认为那里任何工具都不是很好。...大猩猩吃香蕉 让我们回到上面的 addEventListener 例子。泄漏来源是事件侦听器,该事件侦听器引用一个函数,该函数引用一个组件,该组件可能引用大量东西,例如数组、字符串和对象。...如果你按总内存对堆快照差异进行排序,那么它将向你显示一堆数组、字符串和对象——其中大多数可能与泄漏无关。你真正想要找到事件侦听器,但是与它所引用内容相比,占用内存很小。...在上面的示例中,一个名为 someObject 变量,该变量由闭包(也称为“上下文”)引用,并由事件侦听器引用。...但是这也具有上述相同限制——你可能想要连续获取三个并丢弃前两个

3.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

全栈必备JavaScript基础

立即执行函数表达式形如:(function …)( ) 时空密不可分,作用是时空连接纽带之一。作用包括全局函数,块级作用。...块作用形如 with, try/catch, ES6 引入了let,const等。 动态作用并不关心函数作用是如何声明以及在何处声明,只关心它们从何处调用。...词法作用是定义在词法分析阶段作用,词法作用查找会在第一个匹配标识符时停止。作用链是基于调用栈,而不是代码中作用嵌套。...eval() 函数字符串是代码,用来执行动态创建代码,严格模式自己作用,还存在安全隐患;with 是重复引用一个对象中多个属性快捷方式,通过将一个对象引用当作作用来处理,会改变作用范围...模块两个必要条件: 必须有外部封闭函数,该函数必须至少被调用一次 封闭函数必须返回至少一个内部函数,这样内部函数才能在私有作用域中形成闭包,并且可以访问或修改私有的状态 import 可以将一个模块一个或多个

1K40

50道JavaScript基础面试题(附答案)

3 jQuery使用建议 1) 尽量减少对dom元素访问和操作 2) 尽量避免给dom元素绑定多个相同类型事件处理函数,可以将多个相同类型事件 处理函数合并到一个处理函数,通过数据状态来处理分支...可以参考另一篇文章JavaScript实现类与继承方法(全面整理) 9 Javascript作用 作用原理和原型链很类似,如果这个变量在自己作用域中没有,那么它会寻找父级,直到最顶层...16 关于事件,IE与火狐事件机制什么区别? 如何阻止冒泡? IE为事件冒泡,Firefox同时支持事件捕获和事件冒泡。并非所有浏览器都支持事件捕获。...注意,闭包原理是作用链,所以闭包访问上级作用域中变量是个对象,其值为其运算结束后最后一个值。 优点:避免全局变量污染。缺点:容易造成内存泄漏。...该算法个限制:无法处理循环引用。两个对象被创建,并互相引用,形成了一个循环。它们被调用之后不会离开函数作用,所以它们已经没有用了,可以被回收了。

13.7K01

8个问题看你是否真的懂 JS

另外, var声明变量是函数作用,而 let和 const是块作用。...// 误解作用:认为存在块级作用 var array = []; for (var i = 0; i < 3; i++) { // 三个箭头函数体中每个`'i'`都指向相同绑定, //...像 setTimeout, setInterval和 Promise这样全局函数不是JavaScript一部分,而是 Web API 一部分。...JavaScript 环境可视化形式如下所示: ? JS调用栈是后进先出(LIFO)。引擎每次从堆栈中取出一个函数,然后从上到下依次运行代码。...问题5 : 不会响应 解析: 大多数时候,开发人员假设在事件循环图中只有一个任务队列。事实并非如此,我们可以多个任务队列。由浏览器选择其中一个队列并在该队列中处理回调。

1.3K10

8个问题看你是否真的懂 JS

初始化恰发生在你给变量赋值地方。 另外,var声明变量是函数作用,而let和const是块作用。...// 误解作用:认为存在块级作用 var array = []; for (var i = 0; i < 3; i++) { // 三个箭头函数体中每个`'i'`都指向相同绑定, //...}; 答案:不会溢出 解析:JavaScript并发模型基于“事件循环”。 当我们说“浏览器是 JS 家”时真正意思是浏览器提供运行时环境来执行我们JS代码。...像setTimeout,setInterval和Promise这样全局函数不是JavaScript一部分,而是 Web API 一部分。 JavaScript 环境可视化形式如下所示: ?...事实并非如此,我们可以多个任务队列。由浏览器选择其中一个队列并在该队列中处理回调。 在底层来看,JavaScript中有宏任务和微任务。

1.3K30

JavaScript工作原理:内存管理+如何处理4个常见内存泄漏

然而,这只能得到一个近似值。因为在任何一点上,内存位置可能仍然一个作用内指向它变量,但是它可能将永远不会被再次访问了。...在这里,“对象”概念不仅特指 JavaScript 对象,还包括函数作用(或者全局词法作用)。...词法作用定义了如何在嵌套函数中解析变量名称:即使父函数已 return,内部函数也可以包含父函数作用。...在下面的例子中,两个对象被创建,并互相引用,形成了一个循环。它们被调用之后会离开函数作用,所以它们已经没有用了,可以被回收了。然而,引用计数算法考虑到它们互相都有至少一次引用,所以它们不会被回收。...Node.js 中相同对象称为“global”。垃圾收集器构建了所有根完整列表。; 然后算法检查所有根和它们孩子并将它们标记为 Active(意思是,它们不是垃圾)。

83851

JavaScript工作原理:内存管理+如何处理4个常见内存泄漏

然而,这只能得到一个近似值。因为在任何一点上,内存位置可能仍然一个作用内指向它变量,但是它可能将永远不会被再次访问了。...在这里,“对象”概念不仅特指 JavaScript 对象,还包括函数作用(或者全局词法作用)。...词法作用定义了如何在嵌套函数中解析变量名称:即使父函数已 return,内部函数也可以包含父函数作用。...在下面的例子中,两个对象被创建,并互相引用,形成了一个循环。它们被调用之后会离开函数作用,所以它们已经没有用了,可以被回收了。然而,引用计数算法考虑到它们互相都有至少一次引用,所以它们不会被回收。...Node.js 中相同对象称为“global”。垃圾收集器构建了所有根完整列表。; 然后算法检查所有根和它们孩子并将它们标记为 Active(意思是,它们不是垃圾)。

76630

36个助你成为专家需要掌握JavaScript概念

作用 作用一个概念,相信,它在你JS旅程开始阶段你就应该了解他。...你应该了解全局作用、块和函数作用,也称为词法作用。 JS作用一开始可能会让人很困惑,但是一旦你理解了它是如何工作,使用它会非常令人兴奋。...它们主要用于避免污染全局作用。 后来,ES6模块被引入,提供了一种避免全局作用污染标准方法,尽管有些人认为它不是IIFEs直接替代品。...9、 消息队列和事件循环 正如MDN文档所说,JavaScript一个基于事件循环并发模型,它负责执行代码、收集和处理事件以及执行排队子任务。...闭包允许你在内部作用域中访问外部函数作用。每次创建函数时,都会创建JavaScript闭包。 了解应该使用闭包原因,以便更深入地理解它们

69720

35道JavaScript 基础内容面试题

JavaScript 使用原型继承,其中对象可以通过其原型从其他对象继承属性和方法。这种机制允许代码重用和对象层次结构创建。 5. 什么是事件委托,为什么它有用?...事件委托涉及将单个事件侦听器分配给多个元素共同祖先,从而允许处理其所有后代事件。这可以优化性能并减少事件侦听器数量。 6、Function.prototype.bind用法是什么?...Array.prototype.filter 创建一个新数组,其中元素通过所提供函数实现测试。您可以手动迭代数组,应用过滤条件,并使用过滤后元素构建一个新数组。 12....var 关键字具有函数作用,let 具有块作用,const 也具有块作用用于不应重新分配变量。了解范围和可变性差异对于编写健壮 JavaScript 代码至关重要。...18.什么是箭头函数? 箭头函数是在 JavaScript 中编写匿名函数一种简洁方法。它们具有更短语法、“this”词法作用以及隐式返回值,使代码更加紧凑和可读。 19. 什么是类?

6710

分享近百道JavaScript 基础面试题,帮助你巩固JavaScript 基础知识

解释 JavaScript事件委托。 事件委托是一种技术,其中父元素处理由其子元素触发事件。它有助于优化性能并减少事件侦听器。 9. JavaScript闭包是什么?...23.解释JavaScript中“Hoisting”概念。 Hoisting是一种 JavaScript 机制,其中变量和函数声明在编译阶段被移动到各自范围顶部,允许你在声明它们之前使用它们。...let 和 const 是 ECMAScript 6 中引入作用变量,而 var 是函数作用。let 允许重新分配,而 const 是一个不能重新分配常量值。...在 JavaScript 中如何比较两个对象是否相等? JavaScript 没有内置方法来比较两个对象是否相等。您需要手动比较它们属性和值。 55....Hoisting是一种 JavaScript 行为,其中变量和函数声明在编译阶段被移动到其作用顶部。 59.解释JavaScript中闭包概念。

17810

前端-Vue超快速学习

组件可复用,每个组件独立空间 组件上data必须是一个函数,这样做避免影响了其他组件 通过 Vue.component()全局注册组件可在其被注册后任何通过 newVue()创建实例所使用,...emit派发事件) v-on 指令侦听 $on 侦听一个事件 $once 一次性侦听一个事件 $off 停止侦听一个事件 慎用递归组件 尽量避免组件循环引用 优先使用 template来定义模板,而不是...指令接受所有合法JavaScript表达式 渲染函数 & JSX render函数接受 createElement方法作为参数 createElement方法作用是创建一个虚拟节点(VNode) createElement...,同时有自己API,又实现以上部分功能,如:vue-router Vue插件一个公开方法 install,第一个参数是Vue构造器,第二个参数是一个可选对象 插件使用通过全局方法 Vue.use...“msg|filter"> 全局过滤器使用Vue.filter()创建 局部过滤器使用对象属性filters创建 过滤器函数总是接收表达式值作为第一个参数,过滤器可以多个,值依次向后传递

3K40

36 个JS 面试题为你助力金九银十(面试必读)

但是如果在当前作用域中没有查到值,就会向上级作用去查,直到查到全局作用,这么一个查找过程形成链条就叫做作用链。 JS中作用链主要用于解析变量值。...4.将基本数据类型与其值进行比较,这意味着如果两个值具有相同数据类型并具有相同值,那么它们是严格相等。 5.非基本数据类型不与值进行比较。...例如,如果两个对象具有相同属性和值,则它们严格不相等。 15. 如何在现有函数中添加新属性 只需给现有函数赋值,就可以很容易地在现有函数中添加新属性。...它们也被称为全局对象,因为如果使用JS,内置对象不受是运行环境影响。 20. 解释JS中高阶函数? 高阶函数是JS函数式编程最佳特性。它是以函数为参数并返回函数作为结果函数。...当捕获和冒泡时,允许函数一个特定时间实现一个处理程序到多个元素,这称为事件委托。事件委托允许将事件侦听器添加到父节点而不是指定节点。这个特定侦听器分析冒泡事件,以找到子元素上匹配项。

7.2K30

分享 35 道 JavaScript 基础面试题

JavaScript 使用原型继承,其中对象可以通过其原型从其他对象继承属性和方法。这种机制允许代码重用和对象层次结构创建。 5. 什么是事件委托,为什么它有用?...事件委托涉及将单个事件侦听器分配给多个元素共同祖先,从而允许处理其所有后代事件。这可以优化性能并减少事件侦听器数量。 6、Function.prototype.bind用法是什么?...Array.prototype.filter 创建一个新数组,其中元素通过所提供函数实现测试。您可以手动迭代数组,应用过滤条件,并使用过滤后元素构建一个新数组。 12....var 关键字具有函数作用,let 具有块作用,const 也具有块作用用于不应重新分配变量。了解范围和可变性差异对于编写健壮 JavaScript 代码至关重要。...18.什么是箭头函数? 箭头函数是在 JavaScript 中编写匿名函数一种简洁方法。它们具有更短语法、“this”词法作用以及隐式返回值,使代码更加紧凑和可读。 19. 什么是类?

16010

【JS】246-如何在JavaScript面试中过五关斩六将?

它是一个函数变量,里面的变量和函数不会污染到全局作用。从 jQuery 到 Lodash 之类库都用 $etc 表示该用法。 在这里想说是“学好函数”。在使用函数过程中可能会有很多小陷阱。...作用分为三种: 全局作用 当前作用/函数作用 块级作用(ES6 中有介绍) 全局作用是我们常用: x = 10; function Foo() { console.log(x); //... ES6 破坏了块级变量作用,使之变成了全局作用。 现在再来看看作用神奇之处。作用可以通过闭包来实现。JavaScript 闭包就是一个函数返回另一个函数。...我们需要把它们移走。我们不是通过循环和查找来移除字符,而是使用map达到相同效果并获得结果数组。...比如了解 JavaScript 在浏览器中工作机制。那什么是提升和事件冒泡呢? 提升 提升是在运行程序时将声明变量提升到作用顶部过程。

1.2K30

JS 和 Node.js 中事件驱动”是什么意思?

请记住,事件驱动、发布-订阅和观察者模式在实践中不是一回事,但在理想情况下,它们使用相同方法:一个实体广播一条消息,其他实体侦听该消息。 发布-订阅模式和我一样老。...回顾一下: HTML 元素是事件发送器。 JavaScript 中注册为侦听器函数是观察者。 所有这些组件构成了“一个小小事件驱动体系结构。...Node.js 中每个事件发送器都有一个名为 on 方法,该方法至少需要两个参数: 要侦听事件名称 监听器函数 让我们举一个实际例子。...; }); 这段代码创建了一个监听本地主机端口 8081 服务器。在 server 对象上,我们调用 on 方法来注册两个侦听器函数。...这是一个非常好事件发送器,其中状态更改会被分发给所有监听观察者。

8.4K20

在 Chrome DevTools 中调试 JavaScript

事件侦听器断点 6. 异常断点 7. 函数断点 由浅入深说一说怎么样在 Chrome DevTools 中调试 JavaScript。 一、案发现场 为了方便理解,写了一个小demo。...DevTools 现在可以在任何 click 事件侦听器运行时自动暂停。 点击页面中num1+num2按钮。此时页面如下图: ?...四、检查变量值 1. Scope窗口 在某代码行暂停时,Scope 窗格会显示当前定义局部和全局变量,以及各变量值。 其中还会显示闭包变量(如果适用)。 双击变量值可进行编辑。...网址包含字符串模式时 事件侦听器 在触发 click 等事件运行代码中 异常 在引发已捕获或未捕获异常代码行中 函数 任何时候调用特定函数时 1....这样就可以拦截包含getUserInfo字符串请求,如果添加一个,则可以拦截所有请求! 5. 事件侦听器断点 如果想要暂停触发事件运行事件侦听器代码,可以使用事件侦听器断点。

4.8K20

174道JavaScript 面试知识点总结(上)

(6)如果两个操作值都是对象,则比较它们不是指向同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回 true,否则,返回 false。...《JavaScript 学习总结(三)BOM 和 DOM 详解》 41. 写一个通用事件侦听器函数。...捕获指的是事件从 document 一直向下传播到目标元素,依次检查经过节点是否绑定了事件监听函数,如果有则执行。后面两个阶段和 IE 事件模型两个阶段相同。...闭包是指有权访问另一个函数作用域中变量函数,创建闭包最常见方式就是在一个函数内创建另一个函数,创建函数可以 访问到当前函数局部变量。 闭包两个常用用途。...这里同源指的是两个 协议、域名、端口号必须相同,否则则不属于同一个

1.4K41

函数作用和块作用

函数作用 很对人认为 JavaScript 具有基于函数作用,意味着每声明一个函数都会为其自身创建一个气泡,而其他结构不会创建作用气泡。事实上并不完全正确!...:a, bar, c bar 拥有自己作用气泡 同样全局作用也拥有自己作用气泡 a, bar, c 这些标识符都是属于 foo 作用气泡,因此无法从 foo 外部去对它们进行访问。...两个标识符可能具有相同名字但是用途不一样,无意间可能会造成命名冲突。冲突会导致变量值被意外覆盖。...当程序中加载了多个第三方库时候,如果它们没有妥善地将内部私有的函数或变量隐藏起来,就很容易发生冲突。 这些库通常会在全局作用域中声明一个名字足够独特变量,通常是一个对象。...本质上,声明一个函数内部变量或函数会在所处作用隐藏起来,这是有意为之良好软件设计原则。 函数不是唯一作用单元。块作用指的是变量和函数不仅可以属于所处作用可以属于某个代码块。

2.4K20

36 个JS 面试题为你助力金九银十(面试必读)

但是如果在当前作用域中没有查到值,就会向上级作用去查,直到查到全局作用,这么一个查找过程形成链条就叫做作用链。 JS中作用链主要用于解析变量值。...4.将基本数据类型与其值进行比较,这意味着如果两个值具有相同数据类型并具有相同值,那么它们是严格相等。 5.非基本数据类型不与值进行比较。...例如,如果两个对象具有相同属性和值,则它们严格不相等。 15. 如何在现有函数中添加新属性 只需给现有函数赋值,就可以很容易地在现有函数中添加新属性。...它们也被称为全局对象,因为如果使用JS,内置对象不受是运行环境影响。 20. 解释JS中高阶函数? 高阶函数是JS函数式编程最佳特性。它是以函数为参数并返回函数作为结果函数。...当捕获和冒泡时,允许函数一个特定时间实现一个处理程序到多个元素,这称为事件委托。事件委托允许将事件侦听器添加到父节点而不是指定节点。这个特定侦听器分析冒泡事件,以找到子元素上匹配项。

6K20
领券