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

分享30个你必须知道JS基础知识

因此,我们可以得出结论,event.target 是触发事件元素。 11.什么是event.currentTarget? event.currentTarget 是我们明确附加事件处理程序元素。...在此示例中,我们可以得出结论,event.currentTarget 是事件处理程序附加到元素。 12. 为什么在 JavaScript 中比较两个相似的对象会返回 false?...相反,我们可以使用剩余参数来获取箭头函数中传递所有参数。...倒数第二个示例演示我们可以将参数传递IIFE 函数。 最后一个示例表明我们可以将 IIFE 结果保存到一个变量中供以后使用。...我们捕获 i 值并将其作为 currentIndex 参数传递,因此当调用 IIFE 时,每次迭代都有不同 currentIndex 值。 21.

19930

这 5 个关键点 ,带你深入 Webpack

--吴浩麟《深入浅出webpack》 我们将 webpack 事件流理解为 webpack 构建过程中一系列事件,他们分别表示着不同构建周期状态,我们可以像在浏览器上监听 click 事件一样监听事件流上事件...function 给包起来组装成一个对象,这个对象作为 IIFE 实参被传递进去。...但如果我们配置 splitChunk,这时候输出文件就和你 Chunk 挂钩了 这时候,IIFE 形参也变成了摆设,所有我们模块都被放在一个名为 webpackJsonp 全局数组上,通过...IIFE webpackJsonpCallback 来处理数据。...流程,经过 loader 还需要处理一些字符串或者执行一些 JS 脚本,介于 node.js 单线程壁垒,webpack 构建慢一直成为它饱受诟病原因。

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

70个JavaScript面试问题

event.currentTarget是我们在其上显式附加事件处理程序元素。...在此示例中,我们可以得出结论,event.currentTarget是附加事件处理程序元素。 14. == === 有什么区别?...倒数第二个救命表明我们可以将参数传递IIFE函数。最后一个示例表明,我们可以将IIFE结果保存到变量中,以便稍后使用。...,是因为IIFE会为每次迭代创建一个新作用域,我们捕获i值并将其传递给currentIndex参数,因此调用IIFE时,每次迭代currentIndex值都是不同。...在JavaScript中函数也是对象一种,同样对象可以作为参数传递给函数,因此函数也可以作为参数传递给另外一个函数,这个作为参数函数就是回调函数。

1.4K10

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

3.值类型引用类型 最近,我对“引用传递" 在 JS 是怎么工作感到困惑。 尽管我知道 C Java 等语言中有“按引用传递“按值传递概念,但是我不确定它在 JS 中如何工作。...后来,引入了ES6模块,为避免全局作用域污染提供一种标准方法,尽管有人认为它不是IIFE直接替代。 通过理解IIFE模块,你可以构建较少由于全局空间处理不当而导致错误应用程序。...9.消息队列事件循环 正如MDN文档所说,JavaScript 有一个基于事件循环并发模型,事件循环负责执行代码、收集处理事件以及执行队列中子任务。...这个模型与其它语言中模型截然不同,比如 C Java。 在并发模型中,消息队列用于处理最早消息。 只要有事件发生,便会加入消息队列中。...setInterval允许我们重复运行一个函数,从一个特定时间间隔开始,然后以该间隔连续重复。 这些与前面的消息队列事件处理程序概念有些关联。

45710

看完这几道 JavaScript 面试题,让你与考官对答如流(中)

倒数第二个救命表明我们可以将参数传递IIFE函数。 最后一个示例表明,我们可以将IIFE结果保存到变量中,以便稍后使用。...,是因为IIFE会为每次迭代创建一个新作用域,我们捕获i值并将其传递给currentIndex参数,因此调用IIFE时,每次迭代currentIndex值都是不同。...数式编程是声明式 而不是命令式 ,应用程序状态是通过纯函数流动。与面向对象编程形成对比,面向对象中应用程序状态通常与对象中方法共享共处。...在JavaScript中函数也是对象一种,同样对象可以作为参数传递给函数,因此函数也可以作为参数传递给另外一个函数,这个作为参数函数就是回调函数。...状态,在其状态处理方法中可以传入参数/失败信息。

2K10

webpack 学习笔记系列07-工作原理

Compiler 是工作流中最高层对象,提供全局钩子,继承自 Tapable(即完整事件流程核心类) ,记录了完整 Webpack 环境配置信息,每个 Webpack 配置对应一个 Compiler.../src/app.js')); })({ // 采用回调参数形式传递所有的模块,所有的模块以路径作为 key,value 是类似 AMD factory 格式函数 '....__ 函数一些属性; 执行 __webpack_require__ 函数,传入 entry 模块,并返回执行结果,即 entry exports 对象 该 IIFE 函数传入参数为 modules...执行 IIFE 传入模块 factory 函数,上下文为 module.exports // 同时传入3个参数:模块本身、模块 exports 对象、__webpack_require__.../src/name.js'); console.log(name); } factory 3 个参数分别对应 __webpack_require__ 函数内执行 call 传入 3 个参数

1.2K260

75个JavaScript面试题集锦,内含解答,自测 JS 掌握程度

event.currentTarget是我们在其上显式附加事件处理程序元素。...在此示例中,我们可以得出结论,event.currentTarget是附加事件处理程序元素。 14. == === 有什么区别?...倒数第二个表明我们可以将参数传递IIFE函数。最后一个示例表明,我们可以将IIFE结果保存到变量中,以便稍后使用。...,是因为IIFE会为每次迭代创建一个新作用域,我们捕获i值并将其传递给currentIndex参数,因此调用IIFE时,每次迭代currentIndex值都是不同。...在JavaScript中函数也是对象一种,同样对象可以作为参数传递给函数,因此函数也可以作为参数传递给另外一个函数,这个作为参数函数就是回调函数。

13K94

Webpack揭秘——走向高阶前端必经之路

我也是抱着这样好奇,潜心去翻阅相关书籍官方文档,终于对其中原理有所了解,那么现在,就让我们一起来逐步揭开webpack这个黑盒神秘面纱,探寻其中运行机制吧。...function给包起来组装成一个对象,这个对象作为IIFE实参被传递进去。...; } }]); 这时候,IIFE形参也变成了摆设,所有我们模块都被放在一个名为 webpackJsonp 全局数组上,通过IIFE webpackJsonpCallback 来处理数据...this上在loaders之间传递 data.value = "test" } 它可以接受三个参数,最重要就是第三个参数data,你可以为其挂在一些所需值,一个rule里所有的loader...is instancing.") ] } 大家现在肯定也都想起来了,每次我们需要使用某个plugin时候都需要new一下实例化,自然,实例过程中传递参数,也就成为了我们构造函数里拿到options

45210

细说JavaScript闭包

(a) }}fun1()fun3()参考视频讲解:进入学习闭包产生本质:当前环境中存在指向父级作用域引用3.闭包表现形式返回一个函数,上面将原因时候已经说过,这里就不在赘述在定时器、事件监听...) { console.log('Event Listener')})作为函数参数传递形式,比如下面的例子// 3.作为函数参数传递形式var a = 1function foo() { var...(立即执行函数),创建了闭包,保存全局作用域(window)当前函数作用域,因此可以输出全局变量,如下所示。...// 4.IIFE(立即执行函数)var a = 2(function IIFE() { console.log(a) // 输出2})()IIFE 这个函数会稍微有些特殊,算是一种自执行匿名函数,这个匿名函数拥有独立作用域...{ console.log(j) }, 0) })(i)}2.使用 ES6 中 letlet 让 JS块级作用域,代码作用域以块级为单位进行执行。

21010

细说JavaScript闭包

(a) }}fun1()fun3()闭包产生本质:当前环境中存在指向父级作用域引用3.闭包表现形式返回一个函数,上面将原因时候已经说过,这里就不在赘述在定时器、事件监听、Ajax请求、Web...) { console.log('Event Listener')})作为函数参数传递形式,比如下面的例子// 3.作为函数参数传递形式var a = 1function foo() { var...(立即执行函数),创建了闭包,保存全局作用域(window)当前函数作用域,因此可以输出全局变量,如下所示。...// 4.IIFE(立即执行函数)var a = 2(function IIFE() { console.log(a) // 输出2})()IIFE 这个函数会稍微有些特殊,算是一种自执行匿名函数,这个匿名函数拥有独立作用域...timer() { console.log(j) }, 0) })(i)}2.使用 ES6 中 letlet 让 JS块级作用域,代码作用域以块级为单位进行执行。

19840

一文看懂小程序事件系统设计

​微信小程序官方文档中解释说:事件是用于子组件向父组件传递数据,可以传递任意数据。小程序开发中事件是指视图层到逻辑层通讯方式,主要是可以将用户行为反馈到逻辑层进行处理。...汇总来说小程序事件是一种处理用户交互方式,通过监听用户操作行为,触发相应事件处理具体业务逻辑显示效果。...小程序事件主要包括用户操作事件自定义事件,开发人员需要了解这些事件方法机制,以便正确地处理用户操作,并实现良好用户体验。...图片事件分类小程序开发中事件分为冒泡事件非冒泡事件:1、冒泡事件当一个组件上事件被触发后,该事件会向父节点传递。...开发人员需要了解不同事件类型触发方法,根据不同业务需求进行灵活使用处理。同时,良好事件设计处理也是提升应用程序质量用户满意度关键因素之一。

25560

JavaScript学习总结(三)——闭包、IIFE、原型、函数与对象

1.2、理解闭包 闭包概念:当一个内部函数被调用,就会形成闭包,闭包就是能够读取其他函数内部变量函数,定义在一个函数内部函,创建一个闭包环境,让返回这个程序抓住i,以便在后续执行时可以保持对这个...所以为了方便查看一个对象原型,FirefoxChrome中提供"__proto__"这个非标准(不是所有浏览器都支持)访问器(ECMA引入了标准对象原型访问器"Object.getPrototype...prototype 一个对象,用于构造函数,这个对象定义属性方法由构造函数创建所有对象共享。 方法 apply( ) 将函数作为指定对象方法来调用,传递给它是指定参数数组。...// 括号JS一些操作符(如 = && || ,等)可以在函数表达式函数声明上消除歧义 // 如下代码中,解析器已经知道一个是表达式,于是也会把另一个默认为表达式 // 但是两者交换则会报错...将全局对象放在IIFE作用域内提升js解释器查找速度性能。

1.5K60

前端各知识点梳理(施工中...)

listen, //订阅命名事件对应事件回调 emit, //触发命名事件,必传第一个参数事件命名,其后参数为选传...默认情况下,每个 .js 文件就是一个模块,模块内部提供一个moduleexports变量,用于暴露模块 API。使用 require 加载使用模块。...看起来很复杂,其实就是个 IIFE 兼容 AMD 浏览器全局引入: ((root, factory) => { // 检测是否存在 AMD/RequireJS define 函数...浏览器事件机制中事件触发三个阶段 事件捕获阶段: 从dom树节点往下找到目标节点, 不会触发函数 事件目标处理函数: 到达目标节点 事件冒泡: 最后从目标节点往顶层元素传递, 通常函数在此阶段执行 addEventListener...DOM本身是一个js对象, 操作这个对象本身不慢, 但是操作后触发了浏览器行为, 如repaintreflow等浏览器行为, 使其变慢 10.

2.3K10

说说JavaScript闭包

(a) }}fun1()fun3()闭包产生本质:当前环境中存在指向父级作用域引用3.闭包表现形式返回一个函数,上面将原因时候已经说过,这里就不在赘述在定时器、事件监听、Ajax请求、Web...) { console.log('Event Listener')})作为函数参数传递形式,比如下面的例子// 3.作为函数参数传递形式var a = 1function foo() { var...(立即执行函数),创建了闭包,保存全局作用域(window)当前函数作用域,因此可以输出全局变量,如下所示。...// 4.IIFE(立即执行函数)var a = 2(function IIFE() { console.log(a) // 输出2})()IIFE 这个函数会稍微有些特殊,算是一种自执行匿名函数,这个匿名函数拥有独立作用域...{ console.log(j) }, 0) })(i)}2.使用 ES6 中 letlet 让 JS块级作用域,代码作用域以块级为单位进行执行。

20740

程序开发中事件系统是什么?

我们在小程序开发中可能会时常听到事件系统这个词,但却对其背后技术可能不是非常理解,今天就准备通过一些实际案例演示为大家进行解释说明。 什么是事件?...微信小程序官方文档中解释说:事件是用于子组件向父组件传递数据,可以传递任意数据。 小程序开发中事件是指视图层到逻辑层通讯方式,主要是可以将用户行为反馈到逻辑层进行处理。...小程序事件主要包括用户操作事件自定义事件,开发人员需要了解这些事件方法机制,以便正确地处理用户操作,并实现良好用户体验。...事件分类 小程序开发中事件分为冒泡事件非冒泡事件: 1、冒泡事件 当一个组件上事件被触发后,该事件会向父节点传递。...开发人员需要了解不同事件类型触发方法,根据不同业务需求进行灵活使用处理。同时,良好事件设计处理也是提升应用程序质量用户满意度关键因素之一。

21130

微生活时光机:去项目中挖掘JS模块化简史

1.3 - 微生活会员卡(x1)实践 同期第一版会员卡,同样用这种代码组织方法,实现 MVC 结构基于 hash 单页应用: 1.4 - 纯 IIFE 模块化局限性 很明显,这样编写代码虽然较好解决模块分文件编写私有变量问题...其处理依赖链方式 define 定义时如出一辙。...r.js 来打包优化文件,所以商家后台中用法不同是,在模块定义中就不再需要明确指定第一个模块名称参数了。...但是这个机制代码压缩工具不兼容,将导致参数被重新命名成单字符,从而破坏了依赖注入。...利用 Node.js 程序可以访问文件系统优势(在头尾自动包裹一层代码),在 CommonJS 中,每个文件都是拥有自己作用域上下文单独模块。

6021916

Webpack揭秘——走向高阶前端必经之路

我也是抱着这样好奇,潜心去翻阅相关书籍官方文档,终于对其中原理有所了解,那么现在,就让我们一起来逐步揭开webpack这个黑盒神秘面纱,探寻其中运行机制吧。...,我们引入所有模块都被一个function给包起来组装成一个对象,这个对象作为IIFE实参被传递进去。...; 126 } 127}]); 这时候,IIFE形参也变成了摆设,所有我们模块都被放在一个名为 webpackJsonp 全局数组上,通过IIFE webpackJsonpCallback...this上在loaders之间传递 5 data.value = "test" 6} 它可以接受三个参数,最重要就是第三个参数data,你可以为其挂在一些所需值,一个rule里所有的loader...is instancing.") 7 ] 8} 大家现在肯定也都想起来了,每次我们需要使用某个plugin时候都需要new一下实例化,自然,实例过程中传递参数,也就成为了我们构造函数里拿到

56310

JS与ES6高级编程学习笔记(二)——函数与作用域

程序中可以将函数作为参数传递给另一个函数,也可以将函数作为返回值。...图2-12 函数作为参数示例输出结果 第1次调用handler将add函数传递handler函数fun,在handler中调用fun时其实是间接调用了add函数;第2次调用handler将一个匿名函数表达式传递...柯里化是指一个函数,他接收函数A作为参数,运行后能够返回一个新函数。并且这个函数能够处理函数A剩余参数。...,在IIFE中调用factory,将参数number值再传递给调用factory时参数n,最后输出300。...sum([n1,n2,n3…nx]):将数组中数字累加,如果不是数字则跳过。如sum([1,'a',8])返回9。 使用IIFE封装代码并保存到一个独立.js文件中,测试不同参数输出结果。

1.2K10

一劳永逸地搞懂 JavaScript中‘this’

免费体验 Gpt4 plus 与 AI作图神器,我们出钱 体验地址:体验 引言:this 在 JS 中 —— 为什么它如此重要 你是否曾觉得 JavaScript 似乎在戏弄你,尤其是当它在你面前挥舞...(function () { 'use strict'; console.log(this); // Outputs: undefined })(); this 在事件处理程序中:与DOM...在这个魔法核心是我们好朋友:this。 主要吸引力:事件监听器 当你将一个事件监听器绑定到一个DOM元素时,你基本上是在耳语指示,告诉它,“嘿,当有人与你互动时,做这件事。”...这是我们说,“对于每一辆新车,将给定制造模型分配给这个特定实例。” 旋转:原型方法 使用构造函数一个好处是能够将方法附加到它们原型上。...从全局上下文到构造函数,从事件处理程序到常规函数,我们已经涵盖了你可能遇到每一个场景。 现在,你已经武装了自己,准备好在你代码中恰当地使用 this。

10210

前端常见技术点-Javascript扫盲(26问)

这里总结一下 WEB 前端面试 JS 部分常见问题,同时这些问题也是对一些基础技术概念思想理解。对这些基本知识掌握程度深度决定技术层级。...字符串前加入 “{}&&” 可以防止 JSON 劫持; 8、页面编码被请求资源编码如果不一致如何处理?...Android最小点击区域尺寸是 48x48dp; 19、我们给一个 DOM 同时绑定两个点击事件,一个用捕获,一个用冒泡,这个过程会执行几次事件,先执行冒泡还是捕获?...21、柯里化 currying 把接受多个参数函数变换成接受一个单一参数(最初函数第一个参数并且返回一个接受余下参数而且返回结果新函数;给函数分步传递参数,每次函数接受部分参数后应用这些参数...函数定义函数表达式在词法作用域区别:函数定义在程序运行前做静态分析时就已经被放到作用域链中了,而函数表达式(IIFE 匿名函数也是一种函数表达式)同变量定义一样,只有在运行到它之前才会开始分析作用域

1.2K30
领券