自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 javaScript数据结构队列和双端队列

文章目录队列双端队列队列概念队列是__先进先出__,在尾部添加元素,在顶部移除。实现完成一个简单的队列,需要声明一个存储队列的容器和一些队列方法:enqueue():向队列尾部添加元素。dequeue():移除队列顶部第一项元素。peek():返回队列顶部第一项元素。isEmpty():是否为空。size():返回队列长度。clear():清空队列。 class Queue { constructor() { this.co

2021-05-30 23:03:04 145 1

原创 javaScrip数据结构栈

文章目录栈栈概念栈可以在删除添加时进行更多的控制,先进后出 (LIFO) 原则的有序集合,新添加或可删除的一端叫栈顶,另一端叫栈底。实现要实现一个最简单的栈,需要先创建一个栈容器,该容器具有长度,可以用数组,对象,Map实现,还需要实现以下几个功能:push():添加新元素到栈顶。pop():移除栈顶的元素。peek():返回栈顶的元素,不修改。isEmpty():判断栈是否null。clear():清空栈。size():返回栈长度。数组实现 class Sta

2021-05-29 18:13:57 135

原创 清除页面所有定时器setTimeou,setInterval

定时器的id是连续的,可以通过循环清除所有定时器 function clerSettimeout(){ let id = setTimeout(() => { }, 0); while(id > 0){ window.clearTimeout(id) id --; } }小知识页面开久了定时器会有误差。重绘和event loop也是有关的,浏览器是 60Hz 的刷新率,每 16ms才会更新一次。尽量使用 setTimeout 来代替 s.

2021-04-23 20:15:09 1560

原创 javaScript发布订阅模式

目录概念示例取消订阅概念发布-订阅模式还可称为观察者模式,它定义对象之间一对多的依赖关系,当一个属性发生改变时,所有依赖它的地方都会得到通知变化。示例let event = { list: [], // 缓存 addEvent: function( key, fn) { // 添加订阅者 if( !this.list[key] ){ this.list[key] = []; } this.list[key].push(fn) }, addtr

2021-04-13 10:12:55 125

原创 javaScript迭代器模式

目录概念示例1.内部迭代器2.外部迭代器概念迭代器模式是指提供一种方法顺序访问一个对象中的各个元素,又不需要暴露该对象的内部。示例1.内部迭代器var each = function(arr, callback) { for(let i=0,l = arr.length;i < l;i++) { callback.call(arr[i], i, arr[i]) }};each([1,2,3,4],function( i, n) { console.log( i, n)})

2021-04-12 15:25:15 84

原创 javaScript代理模式

目录概念示例缓存代理概念当不方便直接访问本体对象时,提供一个替身对象来代替直接访问本体对象,替身对象相当于中间路由,访问替身对象时,在替身对象中做一些处理操作,再由替身对象代理访问本体对象。示例var _A = { aFun: function( txt ){ _B.bFun(txt) // 让 _B 代理发送 }}var _B = { bFun: function( txt ){ console.log('将消息代理给_C') _C.cFun(txt) // }}

2021-04-06 19:15:30 57

原创 javascript策略模式

目录概念示例概念解决一个问题时,定义不同的方法,将每个方法封装起来,并使它们可以互相替换示例同常,我们会遇到这种情况,需要根据不同的要求走不同的分支,此时会发现一堆 if else,且后期很难维护,这时策略模式就时很好的解决方式,废话不BB,上代码var funList = { fun1: function(val){ return val + 1 }, fun2: function(val){ return val + 2 }, fun3: function(val)

2021-04-05 22:26:14 53

原创 javaScript单例模式

目录概念实例概念保证一个 class 仅有一个实例,并提供一个可以访问到的全局访问点,但在javascript 中是没有 class 的概念,需要使用全局变量实现。实例var instance // 声明一个全局变量,相当于 classvar obj = { setName: function( name ){ // 设置 name this.name = name }, getName: function() { // 获取 name console.log(this.n

2021-04-05 22:09:24 285

原创 javascript 的函数柯里化 (function currying)

javascript 的函数柯里化概念举例概念柯里化(currying),又称为部分求值,一个柯里化函数首先会接受一些参数,但是不会立即参与求值,而是将其保存在闭包中,并返回一个函数,在需要求值时,会将存在闭包中的变量拿出来求值。在理解柯里化之前需要先理解闭包:闭包的简单理解.举例 var currying = function(fn){ var args = [] return function() { if( arguments.length === 0){ retu

2021-03-29 22:38:44 264

原创 有关闭包的简单理解

闭包闭包概念为什么形成闭包内存泄露闭包概念闭包是 js 的一种特性,只要用 js 函数式编程,就一定会触及到闭包,而闭包的形成与作用域以及变量的生命周期有关。参考 javascript设计模式与开发实践。[^1]为什么形成闭包形成闭包的条件:在一个函数作用域中去访问另一个函数的变量例如function a() { var x = 1 return function() { console.log(x++) }}let aFun = a()aFun() // 1aFun

2021-03-28 23:19:42 120 1

原创 vue轮播图帧率播放

vue实现图片帧率轮播播放需求代码问题哈喽,本人目前从事的是前端,这是发的第一个帖,以后遇到的问题都会在这里记录下来,有什么问题可以私信,一起成长,欢迎交流哈,公司做项目是关于三维地图开发,入职的第二个星期周六周日就加班了 = =。需求传入一个数组,数组中放的是目录名称,通过本目录名称,读取文件目录下的所有图片,并循环播放,形成一个每1s播放多少张图片的效果,最后目录播放完毕后,在跳到第一个目录循环播放。代码HTML<template> <div id="imgPl

2021-01-25 22:37:23 695

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除