- 博客(53)
- 收藏
- 关注
原创 手写订阅发布
<!DOCTYPE html><html> <head> <meta charset=utf-8> </head> <body> <script type="text/javascript"> class EventEmitter { constructor(){ ...
2022-05-18 13:24:10 91
原创 前端面试2022
一.路由传参 params: 传参 1.this.$router.push({name:’ patch路由’,params:{aaa:1111,bbb:222}}); 可用 this.$route.params.aaa 获取数据 这个时候如果没有在路由配置 需要传的参数,页面的url不会显示参数,页面刷新参数丢失。 我们需要在路由配置 aaa,bbb如下(这样就) { Patch:...
2022-05-18 13:22:41 179
原创 原型和原型链
只有函数有原型,函数的原型(prototype)属性是一个对象。 因为函数还是一个对象所以函数还有隐式原型(__proto__)。 函数的隐式原型指向 Function 的 显示原型。 即 function a (x,y){}; a.__proto__ -> function.prototype; why: 因为function a a 函数相当于 是 var a = new Function(x,y) Function 也是一个构造函数也是一个函数对象。所以它的隐式原型指向它自己;...
2022-05-07 15:42:12 234
原创 手写订阅发布模式
思路1.一个on方法用来收集订阅的事件和事件对用的名称;名称用来发布时候触发事件一个名称可以对应多个事件,一个事件可以对应多个名称;2. 一个off 方法来去掉on 方法收集的事件;3.emit 发布on 收集的事件下面上代码(可复制直接运行试试输出)<!DOCTYPE html><html> <head> <meta charset=utf-8> </head> <body
2022-04-24 17:08:15 866
原创 螺旋矩阵 js
思路1.矩阵遍历是顺时针遍历2.先遍正序历数组第一个元素数组,再正序遍历数组每个元素数组的最后一个元素3.再逆序遍历数组最后一个元素数组4.再从下到上也就是(逆序)遍历每个数组的第一个元素。这个是思路具体执行1. 一个state用来做状态存储,上面四个思路对应四个状态。2.上面四个思路,每次遍历完都需要删除相对应元素或者数组2. 使用while 循环,循环的条件就是 数组长度不为空;下面是具体代码/**** @param matrix int整型二维数组..
2022-04-12 08:49:34 434
原创 el-select 组件下拉框被遮挡问题
发生这种问题的情况 1.当选择框处于页面边缘 2.它的父级又没有使用fixed 定位 3. 下拉框选项内容过长如下图:解决办法1.element-ui 的el-select 的下拉框定位它会去判断父级是否有fixed 定位如果有那么下拉框也会是采用fixed 定位,这个时候回去判断浏览器的边框和 el-select 的位置去做定位从而不会超出浏览器。2. 知道了上面的原理,解决办法就是给父级加fixed 定位,我们只要给父级加 fixed 定位不需要给...
2020-09-28 11:24:14 9197 1
原创 flutter 中 对 const final static 的认识
const 声明变量1.const 在 = 号的 左边声明变量,必须在声明时候赋值,一旦赋值就不允许修改。2. const 在=号右边作用修饰值,意味着对象的深度和值在定义是就完全确定如 final a = const [1,2,3]如果 final a = cosnt [c,34,1] 会报错,因为c 是变量。final 声明变量1.声明变量时可以不直接初始化,即可以不直接赋值。但是一旦赋值 就不能在进行修改static1.声明变量或者函数成员在类本身而不是在.
2020-08-13 16:15:16 507 1
原创 koa2开发必备插件
No.1 koa-router路由是Web框架必不可少的基础功能,koa.js为了保持自身的精简,并没有像Express.js自带了路由功能,因此koa-router做了很好的补充,作为koa星数最多的中间件,koa-router提供了全面的路由功能,比如类似Express的app.get/post/put的写法,URL命名参数、路由命名、支持加载多个中间件、嵌套路由等。其他可选路由中间件:koa-route, koa-joi-router, koa-trie-routerNo.2 koa-body
2020-08-12 16:21:33 830
原创 web worker 多线程
WEB 主线程1.通过 worker =new Worker(url)加载一个js 文件来创建一个 worker,同时返回一个worker 实例2. 通过worker.postMessage(data) 方法来向Worker 发送数据3. 绑定worker.onmessage 方法 来接收worker 发送过来的数据4. 可以使用worker.terminate()来终止一个worker的执行。worker新线程1.通过 postMessage(data) 方法来向主线程 发送数据
2020-07-07 18:43:32 249
原创 git 常用命令
1.克隆git库到本地 命令 git clonehttp://192.168.2.254:3000/zhengzhihua/xuewu_123.git (git库地址) 结果:出现一个git上面库同名文件夹2.添加文件 git vim 文件名 ->输入内容 ->按ESC 键推出编辑 ->按shift +: 键 输入 w(写入)q( 确认)3.提交到本地 git add 文件名或者 . (点代表所有未提交的);4.添加注释 ...
2020-07-07 17:49:14 100
原创 node 获取电脑ip
var os =require('os')var network = os.networkInterfaces( ) //获取电脑总的ip 配置var localhost = network['以太网'][1].address //获取以太网IP 地址
2020-07-07 16:05:10 534
原创 给元素添加事件的方法
添加html元素的事件1.通过HTML元素属性简单说来就是在html结构中,给你要添加事件的元素添加一个属性。属性名为 'on' + 事件名。如:你要给a元素绑定一个click事件,你就该这么写:<a href="http://blog.163.com/luping_01/blog/#" onclick='do something'>name</a>2.通过对象属性对象指的是jDOM树里的对象,我们都知道,所有的html元素在DOM(文档对象类型)里都存在一个相应的DOM
2020-07-05 11:12:37 1735
原创 vscode 创建vue模板
1.选择file ->preference->User Snippets.2. 输入vue ,然后选择vue.json 或者vue3.在vue.json 文件中输入以下内容,然后保存{ "Print to console": { "prefix": "vue", "body": [ "<template>", " <div class='$1'></div>", "</template&..
2020-07-03 11:36:04 4108
原创 overflow-scrolling:touch bug
当你给一个元素设置过position:absolute;或者position:relative;后再增加-webkit-overflow-scrolling: touch;属性后,你会发现,滑动几次后可滚动区域会卡主,不能在滑动,这时给元素增加个z-index值就可以了。-webkit-overflow-scrolling: touch; position:absolute; z-index:1; ...
2020-07-01 11:35:51 571
原创 let 和 const的区别
let 和const 都是es6中定义变量的关键字这个时候你们肯定会想到var ,没错var也是定义变量的关键字,但是var 定义的关键字存在变量提升。比如:console.log(c) //undefined var c = '1'conole.log(b) //报b is not definedlet b='1'conole.log(a) //报a is not definedconst a='1'解释:在编译阶段变量在最高层window 上有定义只是当运行到 var .
2020-06-30 18:33:23 526
原创 浅谈 xss 攻击
xss 是跨站脚本攻击,主要原理是对网站注入js 脚本,这样当注入的js 脚本执行的时候就达到了恶意攻击的目的。方法:1.现在很多页面是通过浏览器的url 进行数据传输,这个时候如果把传输数据改成js 脚本,再如果开发在取数据的时候没进行任何校验的时候,那么我们的网站就可能受到xss攻击了2. 输入的xss 攻击 ,在许多网站有文章或者评论的输入,这个时候如果输入一串script 代码就比如获取cookie 数据的代码然后传给自己的服务。这样下次别的用户查看文章的时候这段脚本就会执行,导致用户.
2020-06-30 15:39:40 249
原创 js 原型链
js 对每个创建的对象都会设置一个原型当我们用obj.xxx去访问一个对象的属性时,js引擎先在当前对象上查找属性,如果没找到会到其对应的原型对象上查找,如果还没找到就会到Object.prototype对象上找,最后如果还没找到就返回undefined例如:创建一个数组对象var arry= [1,2,3]它的原型链就是arry -> Array.prototype -> Object.prototype -> null我们每次使用的数组方法 indexOf(
2020-06-30 11:31:12 111
原创 微前端
微前端是前端的一种架构类似于后端的微服务。微前端主要功能是把一个功能复杂且庞大的前端项目拆成很多个微小的项目。优点:1.减少代码耦合度2. 灵活部署3.便于维护缺点:1.开发复杂,开发时候需要启动多个项目2.跟踪和调试问题需要跨多个系统实现方法:...
2020-06-28 11:04:30 477
原创 js 获取最近一段时间
js 获取最近的时间思路是1. 获取当前时间的时间戳2. 在时间戳 减去3600*1000*24 *天数3.在把获取到的时间戳转回日期格式4.借助for 循环循环需要的天数即可获得从当前时间到目标时间的数组下面上代码const defaultDay = (day) => { if (!day) { return } // const end = new Date() const arry = [] for (let index = day -...
2020-06-22 16:51:07 856
原创 zepto点透事件
原因:zepto的tap通过兼听绑定在document上的touch事件来完成tap事件的模拟的,及tap事件是冒泡到document上触发的由于click 在移动端会发生300毫秒延迟。当tap点击后还没冒泡到document上时,在手指的点击下会发生click事件!解决:方法1:使用github 上的fastclick插件引入 fastclick.jswindow.addEventListener('load',function(){ FastClick.attach(do..
2020-06-18 17:01:13 219
原创 前端元素清浮动
什么是浮动给元素设置float样式使元素脱离文档普通流,漂浮在普通流之上浮动对文档的影响子元素浮动,父级元素会出现高度为0的现象,这个现象,叫做高度塌陷(导致这现象是因为子元素浮动脱离文档层,父级元素还在文档层)清浮动:4种方法:1. 子元素浮动,父级元素跟着浮动优点:不存在结构和语义化问题,代码量少。缺点:使得与父元素相邻的元素的布局会受到影响,不可能一直浮动到body,不推荐。2.给空标签设置clear:both;优点:通俗易懂,容易掌握。缺点:会添加大量无语义空
2020-06-18 16:26:40 280
原创 js原生ajax请求
创建向后台服务器的一个请求——>确定发送的方式方法——>发送请求——>确定后台加载完毕——>获取到请求返回的数据 注意onload位置AJAX 能够处理那些类型文件 - 文类型文件 如:html txt js css JSON XMLAJAX,需要配合JS 的基本事件以及DOM操作共同使用。AJAX负责的是获取数据,但是将获取到的数据放置到网页当中的任务仍然是JS 中DOM操作的,而JS 中事件的一些功能,能够更好的控制AJAX...
2020-06-18 16:19:27 121
原创 vue 修饰符.sync
.sync 在vue 中相当于是更新v-on 属性的监听器比如 我们写<Demoparent :foo.sync="barparam">实际上是<Demoparent :foo="barparam" @update:foo="val => barparam = val"></Demoparent>子组件中修改foo的值的方法this.$emit('update:foo', newValue)当然前提是我们需要在子组件中的...
2020-06-17 17:21:42 170
原创 js 图片打包压缩下载到本地
1.需要使用 jszip 压缩插件 和 file-saver 插件2. jszip 可以到网上找包下载也可以直接 npm install jszip --save 引入 3. file-saver 可以到网上找包下载也可以直接 npm install file-saver --save 引入4.代码得使用示例代码:(代码后面有截图)import JSZip from 'js...
2019-01-22 14:50:23 2246
原创 移动端点击复制
不说废话直接上干货<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <art
2018-06-04 19:16:10 2419 1
原创 禁止浏览器滑动
问题:在移动端的开发中我们常常会遇到当内容快滑动到顶部或者底部的时候会把浏览器整体拉动。问题的原因,当页面内的滚动到达顶端的时候或者我们刚刚进去页面,有时候我们会去滑滚动区域外的元素。这个时候如果快速拉动,就会导致拉动了浏览器。解决原理: 我们可以每次滑动的时候获取到我们手指放开的时间,当第二次滑动如果时间在300毫秒以下我们就禁止body的默认事件代码//禁止滚动浏览器const prohibi...
2018-05-17 18:29:18 1653
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人