为什么需要事件委托

什么是事件委托?事件委托的原理又是什么?事件冒泡和事件捕获的区别又在哪里? 要解答上面三个问题,我们要一步步弄清楚事件机制:事件流 -> 事件冒泡 -> 事件捕获 -> 事件委托 事件流描述了页面接收事件的顺序。IE 和 Netscape 开发团队提出了几乎完全相 反的事件流方案。IE 支持事件冒泡流,而 Netscape 支持事件捕获流。 事件冒泡IE 事件流被称为事件冒...

发布于 前端

全面解析JavaScript中的原型

JavaScript 是一门面向对象的语言,但与其他面向对象语言 Java、python (基于类继承) 不同,它的继承方式是基于原型实现的。 原型 几乎每个JavaScript对象都有另一个与之关联的对象,这个对象被称为原型 ( prototype ),第一个对象从这个原型继承属性。 通过对象字面量创建的所有对象都有相同的原型对象,在JavaScript代码中可以通过 Object.p...

发布于 前端

全面解析JavaScript中的执行上下文

想要了解作用域,就必须先了解执行上下文。 变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为。每个上下文都有一个关联的变量对象(variable object),而这个上下文中定义的所有变量和函数都存在于这个对象上。 全局上下文是最外层的上下文。在浏览器中,全局上下文就是 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法。使用 ...

发布于 前端

想要提高开发效率,先把VScode快捷键用好

整理了一些使用VScode的小技巧:快捷键、配置代码片段 快捷键(window) Ctrl+N:新建文件 Ctrl+Shift+N:打开一个新的VScode编辑器 Ctrl+O:打开文件 Ctrl+W:关闭当前文件 Ctrl+\:拆分文件到侧边显示 Ctrl+Tab:在工作区切换文件窗口 Ctrl+B:显示/隐藏侧边栏 Ctrl+`:显示/隐藏Terminal C...

发布于 前端

JSX实现todoList案例

在vue2中使用JSX实现todoList案例,通过这个案例,可以了解template的v-if、v-for、v-on、v-model、为组件添加样式、传递自定义事件及数据,在JSX中如何实现。 注意:JSX是在render函数写的,由于使用了render函数,template就不用写了,因为template和render同时存在,会以template为准。 拆分组件Header:添加tod...

发布于 前端

脱离脚手架使用vue+elementUI

替换主题色 使用element官方提供的在线主题生成工具,将下载的压缩包解压缩并在页面中引入index.css 1234<!--将解压缩得到的全部样式放到eleui目录下--><link rel="stylesheet" href="./css/eleui/index.css"><script src="./js...

发布于 前端

对一道循环计数题进行解剖

题如下: 123456789//想要效果:在for循环内,使用setTimeout延迟两秒后,依次打印i的值:0,1,2,3,4for(var i=0;i<5;i++){ setTimeout(()=>{ console.log(i) },2000)} 上述代码最终的执行结果:延迟2秒后,在控制台中打印了...

发布于 前端

ts+webpack环境构建

npm包初始化和安装typescript将ts_demo文件夹初始化为一个npm包 1npm init 全局安装typescript 1cnpm i typescript -g 如果出现以下错误 1C:\Users\xxx\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 用管理员身份运行power shell,执行以下操作,根...

发布于 前端

对象关联和行为委托

对象关联和行为委托创建关联1234567let foo = { something: function(){ console.log("Tell me something good...") }};let bar = Object.create(foo); //Object.create(..)会创建一个新...

发布于 前端

生成器generator

生成器执行例子1234567891011121314151617//构造生成器函数 var a = 1; var b = 2; function *foo() { a++; yield; b = b * a; a = (yield b) + 3; &#...

发布于 前端