ducky_L

导航

2023年4月13日 #

js 手写发布订阅eventHub

摘要: 1、发布-订阅是一种消息范式,通过定义发布者、订阅者、调度中心来完成消息通信。 const eventHub = { map: {}, on(name, fn) { this.map[name] = this.map[name] || []; this.map[name].push(fn); con 阅读全文

posted @ 2023-04-13 16:43 ducky_L 阅读(42) 评论(0) 推荐(0) 编辑

js 手写防抖节流

摘要: 1、防抖:避免事件的频繁调用,即当事件停止一段时间后再促发。 应用:浏览器resize、input校验、button点击 const myDebounce = (fn, wait){ let timer = null; return (...args) => { if (timer) clearTi 阅读全文

posted @ 2023-04-13 14:51 ducky_L 阅读(84) 评论(0) 推荐(0) 编辑

js 闭包是什么

摘要: 1、阐述闭包:闭包是js的一种语法特性;即「函数」和「函数内部能访问到的变量」的总和,就是一个闭包。 2、闭包的作用:间接访问一个局部变量;以下就实现了一个闭包,它通过返回一个函数使得外部能获得内部的变量。 const increase=function(){ var count=0; return 阅读全文

posted @ 2023-04-13 09:53 ducky_L 阅读(62) 评论(0) 推荐(0) 编辑

2023年4月12日 #

js 原型和原型链

摘要: 1、原型:js中对象o:{} 有一个隐藏属性(__proto__),这个隐藏属性会指向o的原型:o.__proto__ Object.prototype;那么我们就说:Object.prototype就是o的原型; 2、原型链:假设一个数组a=[];a 的隐藏属性指向它的原型(a.__proto__ 阅读全文

posted @ 2023-04-12 16:18 ducky_L 阅读(18) 评论(0) 推荐(0) 编辑

js this是什么?

摘要: 1、this:指当前执行上下文的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。 可以理解为:this 就是你call 一个函数时,传入的第一个参数,即谁调用了函数,this就指向谁。 2、函数调用转换: func(p1, p2) 等价于 func.call(undefined 阅读全文

posted @ 2023-04-12 15:47 ducky_L 阅读(18) 评论(0) 推荐(0) 编辑

js new运算符

摘要: 1、new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(通过构造函数来创建一个实例对象) 2、new做了什么? ①创建一个临时对象 ②为该临时对象添加属性 __proto__,将该属性链接至构造函数的原型对象(绑定原型) ③将this指向该临时对象 ④执行构造函数 ⑤返回 阅读全文

posted @ 2023-04-12 14:59 ducky_L 阅读(8) 评论(0) 推荐(0) 编辑

2023年4月11日 #

js 8种数据类型

摘要: 1、ES6之前共6种:number\string\Boolean\null\undefined\object; ES6增加symbol:这种类型的对象永不相等,可以解决属性名冲突的问题,做为标记。 ES11增加bigint:写法:1234555n,是指安全存储、操作大整数(不可用于浮点数操作); 2 阅读全文

posted @ 2023-04-11 16:27 ducky_L 阅读(12) 评论(0) 推荐(0) 编辑

css 两种盒模型(box-sizing)的区别

摘要: 区别:总宽度的计算公式不一样 1、content-box:标准盒模型:实际宽度=width+pading+border 2、border-box: 怪异(IE盒)模型:实际宽度=width 阅读全文

posted @ 2023-04-11 15:45 ducky_L 阅读(59) 评论(0) 推荐(0) 编辑

CSS 实现垂直居中的5种方法

摘要: 方法1:使用绝对定位和负外边距对块级元素进行垂直居中 优点:兼容不错。缺点:必须提前知道被居中块级元素的尺寸 .father { width: 300px; height: 300px; background-color: red; position: relative; margin-bottom 阅读全文

posted @ 2023-04-11 15:25 ducky_L 阅读(118) 评论(0) 推荐(0) 编辑

HTML5 Canvas和SVG的区别

摘要: Canvas 主要是用笔刷来绘制 2D 图形的。 SVG 主要是用标签来绘制不规则矢量图的。 相同点:都是主要用来画 2D 图形的。 区别:SVG 画的是矢量图,Canvas 画的是位图; SVG 节点过多时渲染慢,Canvas 性能更好一点,但写起来更复杂;SVG 支持分层和事件,Canvas 不 阅读全文

posted @ 2023-04-11 14:18 ducky_L 阅读(14) 评论(0) 推荐(0) 编辑