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

要深入 JavaScript,你需要掌握这 36 个概念

JavaScript 作用 作用是 JS 中一个很重要尴尬,JS 也一直在不断完善自己作用。 根据Wissam说法,作用简单定义是,编译器在需要时查找变量函数。...了解作用有助于我们有效地使用JavaScript。 我们还需要了解全局作用以及块函数作用,也称为词法作用。...9.消息队列事件循环 正如MDN文档所说,JavaScript 有一个基于事件循环并发模型,事件循环负责执行代码、收集处理事件以及执行队列子任务。...setInterval允许我们重复运行一个函数,从一个特定时间间隔开始,然后以该间隔连续重复。 这些与前面的消息队列事件处理程序概念有些关联。...如果你对变量进行更改,则可能会影响到其他函数,具体取决于变量被更改之前。 在React环境,建议我不要改变状态。 21. 闭包 闭包很难理解。 但是一旦理解,你会觉得 JS 其实也挺好

45510

前端面试指南--JS面试题总结

其区别在于:var let const作用 函数作用块级作用 块级作用作用内声明提升 有 无(暂时性死区)无 是否可重复声明 是 否...ES6有全局作用函数作用块级作用三层概念。 当一个变量在当前块级作用域中未被定义时,会向父级作用(创建该函数那个父级作用)寻找。...(1)函数执行上下文只在函数调用时生成,而其作用在创建时已经生成; (2)函数作用会包含若干个执行上下文(有可能是零个,当函数未被调用时)。 9. this指向各种情况都有什么?...待处理事件会存储在一个任务队列,也就是每次 Tick 会查看任务队列是否有需要执行任务。 任务队列: 异步操作会将相关回调添加到任务队列。...js是一门单线程需要,它异步操作都是通过事件循环来完成。整个事件循环大体由执行栈、消息队列微任务队列三个部分组成。 同步代码会直接在执行栈调用执行。

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

前端面试指南之JS面试题总结

其区别在于:var let const作用 函数作用块级作用 块级作用作用内声明提升 有 无(暂时性死区)无 是否可重复声明 是 否...作用最大用处就是隔离变量,不同作用下同名变量不会有冲突。ES6有全局作用函数作用块级作用三层概念。...作用执行上下文区别是什么?(1)函数执行上下文只在函数调用时生成,而其作用在创建时已经生成; (2)函数作用会包含若干个执行上下文(有可能是零个,当函数未被调用时)。...待处理事件会存储在一个任务队列,也就是每次 Tick 会查看任务队列是否有需要执行任务。 任务队列: 异步操作会将相关回调添加到任务队列。...js是一门单线程需要,它异步操作都是通过事件循环来完成。整个事件循环大体由执行栈、消息队列微任务队列三个部分组成。 同步代码会直接在执行栈调用执行。

79100

前端面试指南之JS面试题总结2

其区别在于:var let const作用 函数作用块级作用 块级作用作用内声明提升 有 无(暂时性死区)无 是否可重复声明 是 否...ES6有全局作用函数作用块级作用三层概念。 当一个变量在当前块级作用域中未被定义时,会向父级作用(创建该函数那个父级作用)寻找。...(1)函数执行上下文只在函数调用时生成,而其作用在创建时已经生成; (2)函数作用会包含若干个执行上下文(有可能是零个,当函数未被调用时)。 9. this指向各种情况都有什么?...待处理事件会存储在一个任务队列,也就是每次 Tick 会查看任务队列是否有需要执行任务。 任务队列: 异步操作会将相关回调添加到任务队列。...js是一门单线程需要,它异步操作都是通过事件循环来完成。整个事件循环大体由执行栈、消息队列微任务队列三个部分组成。 同步代码会直接在执行栈调用执行。

77620

前端二面必会面试题及答案_2023-03-15

,传入函数将会被 顺序调用;注意事项:setState 合并,在 合成事件 生命周期钩子 多次连续调用会被优化为一次;当组件已被销毁,如果再次调用setState,React 会报错警告,通常有两种解决办法将数据挂载到外部...图片setState 只有在 React 自身合成事件钩子函数异步,在原生事件 setTimeout 中都是同步setState 异步并不是说内部由异步代码实现,其实本身执行过程代码都是同步...,只是合成事件钩子函数没法立马拿到更新后,形成了所谓异步。...,在异步如果对同一个进行多次 setState,setState 批量更新策略会对其进行覆盖,去最后一次执行,如果是同时 setState 多个不同,在更新时会对其进行合并批量更新合成事件异步钩子函数异步原生事件是同步...,通过作用链,我们可以访问到外层环境变量 函数

1.3K50

web前端面试都问什么-JS篇

稍全面的回答: 在js变量作用属于函数作用, 在函数执行完后,作用就会被清理,内存也会随之被回收,但是由于闭包函数是建立在函数内部函数, 由于其可访问上级作用,即使上级函数执行完, 作用也不会随之销毁..., 这时函数(也就是闭包),便拥有了访问上级作用域中变量权限,即使上级函数执行完后作用也不会被销毁。...这里涉及到对函数作用认识: js变量分为全局变量和局部变量;函数内部可以直接读取全局变量,而在函数外部自然无法读取函数局部变量 闭包解决了什么问题 可以读取函数内部变量 让这些变量始终保持在内存...2000)); 节流: 就是指连续触发事件但是在 n 秒只执行一次函数。...resolve函数作用是,将Promise对象状态从“未完成”变为“成功”(即从Pending变为Resolved),在异步操作成功时调用,并将异步操作结果,作为参数传递出去;reject函数作用

3.7K32

分享63个最常见前端面试题及其答案

07、callapply有什么区别? call apply 都用于更改函数“this”作用。主要区别在于如何将参数传递给函数。...Hoisting是 JavaScript 在编译阶段将变量函数声明移动到各自作用顶部过程。这允许在代码声明变量函数之前使用它们。...let const 具有块作用,这意味着它们仅限于声明它们块(例如,在大括号内)。var 具有函数作用,这意味着它可以在声明它整个函数访问。...同步函数逐步执行,每一行都等待前一行完成。异步函数允许在上一步完成之前执行到下一步。异步函数通常用于非阻塞操作。 24、什么是事件循环?调用堆栈任务队列有什么区别?...事件循环负责利用单个线程执行 JavaScript 操作。它使用调用堆栈来跟踪当前正在执行操作,并使用任务队列来管理异步任务。

4.2K20

分享 63 道最常见前端面试及其答案

07、callapply有什么区别? call apply 都用于更改函数“this”作用。主要区别在于如何将参数传递给函数。...Hoisting是 JavaScript 在编译阶段将变量函数声明移动到各自作用顶部过程。这允许在代码声明变量函数之前使用它们。...let const 具有块作用,这意味着它们仅限于声明它们块(例如,在大括号内)。var 具有函数作用,这意味着它可以在声明它整个函数访问。...同步函数逐步执行,每一行都等待前一行完成。异步函数允许在上一步完成之前执行到下一步。异步函数通常用于非阻塞操作。 24、什么是事件循环?调用堆栈任务队列有什么区别?...事件循环负责利用单个线程执行 JavaScript 操作。它使用调用堆栈来跟踪当前正在执行操作,并使用任务队列来管理异步任务。

17230

前端面试题---JS部分

作用就是一个变量可以使用范围,主要分为全局作用函数作用 全局作用就是Js中最外层作用,在哪里都可以访问 函数作用是js通过函数创建一个独立作用,只能在函数内部访问,函数可以嵌套,所以作用也可以嵌套...节流:所谓节流,就是指连续触发事件但是在 n 秒只执行一次函数。两种方式可以实现,分别是时间戳版定时器版。...2、DOM:当原有的DOM被移除时,子结点引用没有被移除则无法回收 3、Times计时器泄露 作用 1、作用 作用就是一个变量可以使用范围,主要分为全局作用函数作用 全局作用就是Js中最外层作用...函数作用是js通过函数创建一个独立作用函数可以嵌套,所以作用也可以嵌套 Es6新增了块级作用(由大括号包裹,比如:if(){},for(){}等) 2、自由变量 当前作用域外变量都是自由变量...任务队列可以分为宏任务对列微任务对列,当当前执行栈事件执行完毕后,js 引擎首先会判断微任务对列是否有任务可以执行,如果有就将微任务队首事件压入栈执行。

71720

2022高频前端面试题合集之JavaScript篇(上)

函数作用里面所声明变量只在函数中提供访问使用。 「eval 作用:」当调用 eval( ) 函数时候,就会产生一个 eval 作用。...作用作用链 (美团 19年) 参考答案: 作用是在运行时代码某些特定部分变量,函数对象可访问性。换句话说,作用决定了代码区块变量其他资源可见性。...函数防抖(debounce),指的是短时间内多次触发同一事件,只执行最后一次,或者只执行最开始一次,中间不执行。 函数节流(throttle),指连续触发事件但是在 n 秒只执行一次函数。...ES5 只存在两种作用:全局作用函数作用。...image-20210813154040287「可变性:」 基本数据类型: 不可变,javascript 原始(undefined、null、布尔、数字字符串)是不可更改 引用数据类型

1K20

面了十多家,总结出20道JavaScript 必考面试题!

varlet都是声明变量,var有变量提升,let没有,但是let具有块级作用 const声明常量,具有块级作用 spliceslice方法区别?...bind() 作用与call()apply()一样,都是可以改变函数运行时上下文,区别是call()apply()在调用函数之后会立即执行,而bind()方法调用并改变函数运行时上下文后,返回一个新函数...new 箭头函数没有 arguments 这个参数 作用作用作用是指程序变量、函数作用范围 全局作用:指的是定义在代码块外部、函数外部或者是模块外部变量、函数等,它们拥有全局作用...局部作用:指的是定义在代码块、函数或者是模块内部变量、函数等,它们拥有局部作用。 在ES6规范下,还引入了块级作用概念。...防抖:n 秒后再执行回调,若在 n 秒内被重复触发,则重新计时;防抖基本思想是在函数连续调用时,只执行最后一次调用,并在指定时间间隔内没有新调用才执行函数

17730

2021年web前端面试集锦

(全局作用函数作用、块级作用)。 作用链就是从当前作用开始一层一层向上寻找某个变量,直到找到全局作用还是没找到,就宣布放弃。这种一层一层关系,就是作用链。...只在合成事件钩子函数是“异步,在原生事件 setTimeout 中都是同步。...② setState异步”并不是说内部由异步代码实现,其实本身执行过程代码都是同步,只是合成事件钩子函数调用顺序在更新之前,导致在合成事件钩子函数没法立马拿到更新后,形式了所谓“...③ setState 批量更新优化也是建立在“异步”(合成事件、钩子函数)之上,在原生事件setTimeout 不会批量更新,在“异步如果对同一个进行多次 setState , setState...高阶组件作用: 代码复用,逻辑抽象,抽离底层准备(bootstrap)代码 渲染劫持 State 抽象更改 Props 更改 12、可以用哪些方式创建React组件?

37130

C#面试题

线程堆栈:简称栈 Stack 托管堆: 简称堆 Heap 类型大多分配在栈上,引用类型都分配在堆上; 栈由操作系统管理,栈上变量在其作用完成后就被释放,效率较高,但空间有限。...类型:整数、浮点数、字符、booldecimal 引用类型:Object,String 10. 说说类型引用类型生命周期? 类型在作用结束后释放。 引用类型由GC垃圾回收期回收。...C#委托是什么?事件是不是一种委托? 什么是委托?简单来说,委托类似于 C或 C++函数指针,允许将方法作为参数进行传递。...② 清除:针对所有不可达对象进行清除操作,针对普通对象直接回收内存,而对于实现了终结器对象(实现了析构函数对象)需要单独回收处理。清除之后,内存就会变得不连续了,就是步骤3工作了。...对于lock锁,锁定这个对象参数才是关键,这个参数同步索引块指针会指向一个真正锁(同步块),这个锁(同步块)会被复用。 3. 多线程异步有什么关系区别?

75020

vue高频面试题合集(一)附答案

(2)模板模板方面没有大变更,只改了作用插槽,2.x 机制导致作用插槽变了,父组件会重新渲染,而 3.0 把作用插槽改成了函数方式,这样只会影响子组件重新渲染,提升了渲染性能。...v-if 是真正条件渲染,因为它会确保在切换过程条件块内事件监听器子组件适当地被销毁重建;也是惰性:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。...是用来函数劫持方式,重写了数组方法,具体呢就是更改了数组原型,更改成自己,用户调数组一些方法时候,走就是自己方法,然后通知视图去更新。...3. update:被绑定于元素所在模板更新时调用,而无论绑定是否变化。通过比较更新前后绑定,可以忽略不必要模板更新。...过程调用对应钩子4.当执行指令对应钩子函数时,调用对应指令定义方法Vue为什么没有类似于ReactshouldComponentUpdate生命周期?

93830

react相关面试知识点总结

setState 是同步还是异步有时表现出同步,有时表现出异步setState 只有在 React 自身合成事件钩子函数异步,在原生事件 setTimeout 中都是同步setState...异步并不是说内部由异步代码实现,其实本身执行过程代码都是同步,只是合成事件钩子函数没法立马拿到更新后,形成了所谓异步。...当然可以通过 setState 第二个参数 callback 拿到更新后结果setState 批量更新优化也是建立在异步(合成事件、钩子函数)之上,在原生事件 setTimeout 不会批量更新...,在异步如果对同一个进行多次 setState,setState 批量更新策略会对其进行覆盖,去最后一次执行,如果是同时 setState 多个不同,在更新时会对其进行合并批量更新合成事件异步钩子函数异步原生事件是同步...,传入函数将会被 顺序调用;注意事项:setState 合并,在 合成事件 生命周期钩子 多次连续调用会被优化为一次;当组件已被销毁,如果再次调用setState,React 会报错警告,通常有两种解决办法将数据挂载到外部

1K50

全栈必备JavaScript基础

作用是根据名称查找变量一套规则,遍历嵌套作用规则简单:引擎从当前执行作用逐级向上查找。闭包可以理解为具有状态函数函数作用指属于这个函数全部变量都可以在整个函数范围内使用或复用。...块作用形如 with, try/catch, ES6 引入了let,const等。 动态作用并不关心函数作用是如何声明以及在何处声明,只关心它们从何处调用。...词法作用是定义在词法分析阶段作用,词法作用查找会在第一个匹配标识符时停止。作用链是基于调用,而不是代码作用嵌套。...this 即没有指向函数自身,也没有指向函数作用,是在函数调用时发生绑定,它指向什么完全取决于函数在哪里被调用。...eval() 函数字符串是代码,用来执行动态创建代码,严格模式有自己作用,还存在安全隐患;with 是重复引用一个对象多个属性快捷方式,通过将一个对象引用当作作用来处理,会改变作用范围

1K40

ASP.NET 调味品:AJAX

其次,在页加载事件期间,必须通过调用 Ajax.Utility.RegisterTypeForAjax 来注册包含这些函数类。听起来似乎有些复杂,但请不必担心;实际上只需要在代码多加两行。...完成服务器端处理时,Ajax.NET 调用指定回调函数 GetMessageOfTheDay_CallBack,并向其传递由服务器端返回组成响应。...当用户从国家/地区列表中选择新项时,我们想在逻辑上调用 GetStates。为此,我们将触发 JavaScript onChange 事件。这样就稍微更改了我们 Web 窗体代码。...在我们示例,将为 Sample.GetStates。我们还想传入国家/地区 ID 参数完成服务器端函数后 Ajax.NET 应调用回调函数。...这与以前示例代码相似。首先,检查是否存在错误,获得响应,遍历可用文档,动态创建 HTML,在这种情况下,向表添加行列。

3.6K50

【愚公系列】2023年03月 其他-Web前端基础面试题(JS_高级_47道)

29、箭头函数普通函数区别 30、同步异步区别 31、什么叫优雅降级渐进增强?...闭包就是一个函数引用另外一个函数变量,因为变量被引用着所以不会被回收,它最大用处有两个,一个是可以读取函数内部变量,另一个就是让这些变量始终保持在内存,不会在外部函数调用后被自动清除。...整个JS在运行过程主要执行以下事件循环(Even loop): 主程序从上往下执行同步任务 异步任务会被放入异步任务队列 当同步任务执行完成后,会去异步任务队列执行异步事件...不能通过bind、call、apply改变this指向 使用new调用箭头函数会报错,因为箭头函数没有constructor 30、同步异步区别 同步是一直阻塞模式,如果一个请求需要等待回调...而堆一般是在头部用一个字节存放堆大小,堆具体内容是人为安排; (5)底层不同。栈是连续空间,而堆是不连续空间。 (6)生长方向不同。

45720

前端相关片段整理——持续更新

对象 除了遍历数组元素以外,还会遍历自定义属性 1.4. generator 函数 一种异步解决方案(一种封装了多个内部状态状态机) 返回不是函数运行结果,而是指向内部状态针对调用next...JSONP 被包含在一个回调函数 json 核心是: 动态添加script标签调用服务器提供js脚本 2.2. cors 使用自定义http头部让浏览器与服务器进行沟通,确定该请求是否成功...每个执行环境都有一个与之关联变量对象,环境定义所有变量函数都保存在这个对象 当访问一个变量时,解释器会首先在当前作用查找标示符,如果没有找到,就去父作用找,直到找到该变量标示符或者不再存在父作用了...对于全局环境代码,作用链只包含一个元素:全局对象 作用原型继承: 有点类似,但又有点小区别: 如果去查找一个普通对象属性时,在当前对象其原型中都找不到时,会返回undefined 查找属性在作用不存在的话就会抛出...ReferenceError 更多了解: 闭包this作用 闭包运用 匿名自执行函数 有的函数只需要执行一次,其内部变量无需维护,执行后释放变量 实现封装/模块化代码 变量作用函数内部,

1.4K10

总结了一些vue相关题目,话说今年前端面试难度好大

当一个组件没有声明任何 prop 时,这里会包含所有父作用绑定 ( class style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。...Mutation:是唯一更改 store 状态方法,且必须是同步函数。Action:用于提交 mutation,而不是直接变更状态,可以包含任意异步操作。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染打补丁,在这之后会调用改钩子。updated:由于数据更改导致虚拟DOM重新渲染打补丁,在这之后会调用改钩子。...当一个组件没有声明任何 prop 时,这里会包含所有父作用绑定 ( class style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。...3. update:被绑定于元素所在模板更新时调用,而无论绑定是否变化。通过比较更新前后绑定,可以忽略不必要模板更新。

87560
领券