- 博客(166)
- 资源 (2)
- 收藏
- 关注
原创 赋值和浅拷贝和深拷贝得区别
这三者的区别如下,不过比较的前提都是针对引用类型:当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变,其实都是改变的存储空间的内容,因此,两个对象是联动的。浅拷贝:重新在堆中创建内存,拷贝前后对象的基本数据类型互不影响,但拷贝前后对象的引用类型因共享同一块内存,会相互影响。深拷贝:从堆内存中开辟一个新的区域存放新对象,对对象中的子对象进行递归拷贝,拷贝前后的两个对象互不影响。......
2022-06-23 13:43:15
307
原创 前端文件流下载
需要注意和后端发起请求的时候 responseType 需要是 ‘blob’const blob = resconst reader = new FileReader()reader.readAsDataURL(blob)reader.onload = function (ev) { if (window.navigator.msSaveOrOpenBlob) { // 兼容ie11 const blobObject = new Blob([blob]) window.n
2022-05-30 14:27:26
139
原创 为什么tcp 三次握手 四次挥手
我想握手好的可以握手好,那我们握手,tcp连接成功我想分手好,我准备一下分手我准备好分手了行,那我们分手,tcp断开连接
2022-05-25 17:26:53
93
原创 html2canvas 来 生成 canvas 元素,然后 利用 canvas 的 toDataURL(‘image/jpeg’) 方法,将 canvas 元素 生成 图片base64格式的 url
<template> <div> <!-- 卡片部分 --> <button @click="generateImages">点击生成图片并将图片保存在本地</button> <div class="card"> <div class="card_head"> <p>姓名:</p> <p>张三丰</p>
2022-05-05 16:02:03
1315
原创 flex 布局下 子元素图片变形问题
flex-shrink: 0;指定了 flex 元素的收缩规则默认值为1 不想缩放设置为0就可以了当宽度超出时会更具flex-shrink的属性值进行计算
2022-04-18 19:57:12
593
原创 CSS实现中间粗两头细的线条
CSS实现中间粗两头细的线条通过给一个盒子添加渐变背景的方式来实现画一条中间粗两头细的线条的效果<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-
2022-04-12 16:07:57
1191
原创 已知树形结构 和其中一项id 变为id数组方法
export function idList (data, val, id = 'id', children = 'children') { let res = [] idListFromTree(data, val, res, id) return res}/** * @param {*} data * @param {*} id * @param {*} pid */function idListFromTree (data, val, res = [], id = 'id'
2022-03-30 14:09:30
294
1
原创 vue+element上传excel文件类型
<template> <div> <el-upload drag :limit=limitNum :auto-upload="false" accept=".xlsx" :action="UploadUrl()" :before-upload="beforeUploadFile" :on-change="fileChange" :on-exceed="exc
2022-03-24 14:29:54
470
原创 vue(前端)字符串导出.txt文件
首先安装 FileSaver包,npm install file-saver --save引入 import {saveAs} from 'file-saver';将字符串转为Blob对象let str = new Blob(['要导出的字符串'], {type: 'text/plain;charset=utf-8'});saveAs(str, `导出文件时的名字.txt`);注意这里要手动写上文件的后缀名...
2022-03-23 15:37:35
1322
1
原创 用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数和字符串翻转
用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数有一道经典的字符串处理的问题,统计一个字符串中每个字符出现的次数。用es6的Array.reduce()函数配合“…”扩展符号可以更方便的处理该问题。结果:{ a: 5, b: 2, n: 5, c: 2 }字符串翻转.split(’’).reverse().join(’’);...
2022-03-22 15:30:32
794
原创 for循环里面写settimeout bug怎么解决
1.闭包for (var i=1; i<=5; i++) {(function(j) {setTimeout( function timer() {console.log( j );}, j1000 );})(i);}2.拆分结构function timer(i) {setTimeout( console.log( i ), i1000 );}for (var i=1; i<=5;i++) {timer(i);}3.let 块级作用域for (let i=1; i
2022-03-22 15:27:36
224
原创 moment 秒级时间戳转格式
let time = 秒级时间戳 //十位moment.unix(time).format('YYYY-MM-DD HH:mm:ss')
2022-03-17 15:46:33
1771
原创 base64下载图片到浏览器
<el-button size="small" @click="exportDatas(scope.row.img)" type="info" plain>下载</el-button> //下载 exportDatas: function (img) { var xhr = new XMLHttpRequest(); xhr.open('get', img); xhr.responseType = 'blob';
2022-03-17 11:39:26
300
原创 uniapp获取dom到顶部的距离
var that=this;const query = uni.createSelectorQuery().in(that);query.select(‘元素’).boundingClientRect(data => {console.log(data)}).exec();
2022-03-07 14:11:18
710
原创 关于小程序和h5兼容性问题
今天发版小程序和h5,因为用的uniapp可以一套代码两个环境,一共有三个兼容性问题。1.window 在小程序无法使用2.v-show 在小程序无法使用3.不知道为啥我在h5的很多请求为undefind和null的时候在请求的时候为空字符串,在小程序为undefind和null,导致报错,第一次遇到这种兼容性问题,有大佬知道嘛...
2022-03-03 18:22:46
873
原创 uniapp tabbar 被 软键盘顶起
data() { return { documentHeight: document.documentElement.clientHeight, //默认屏幕高度 }; }, mounted() { // window.onresize监听页面高度的变化 window.onresize = () => { return (() => { if (this.documentHeight > document.do.
2022-03-01 16:24:19
637
原创 git 误提交怎么办
1、找到你误提交之前的版本号2、git revert -n 版本号3、git commit -m xxxx 提交4、git push 推送到远程OK,版本还原了
2022-03-01 12:24:22
475
原创 vue2 computed 和 watch区别
computed 一般用于简化模板中变量的调用watch 一般用于监听数据的变化,做一些逻辑处理或者异步处理,可以深度监听、立即执行computed 和 watch 在源码里都是通过 Watcher 类创建出来的初始化时,先创建 computed 再创建 watch 。数据改变时,先执行 computed 再执行 watch...
2022-02-23 10:17:04
636
原创 vue 加控制阀
@click="handle && move()" 可以在data 中定义 handle 通过控制它的true或者false 来控制是否执行move()事件
2022-02-18 16:10:41
384
原创 js 节流
var text = document.getElementById('write');function trol(fn,delay){ var pre = new Date(); return function () { var now = new Date(); if(now-pre >= delay){ fn(); pre = new Date(); } }}functi
2022-02-18 14:52:49
298
原创 ElementUI中el-radio再次点击取消选中
<el-radio-group v-model="radio"> <el-radio :label="1" @click.native.prevent="radioClick(1)">备选项</el-radio> </el-radio-group>//prevent阻止默认事件data(){ return{ radio: '', }}radioClick (e) { e === this
2022-02-17 18:08:04
2466
原创 判断数组对象 中 对象中是否为空 是否继续执行代码
今天碰到了这个问题,举个例子let peopleArr = [{name:'张三',info:'爱打篮球'},{name:'李四',info:''}]现在我们要判断peopleArr中是否有人的info是空的,如果有进行提示,没有的话继续执行接下来的代码,我们应该如何判断呢,我按照正常思路来想就是如果要判断一个数组对象中的所有对象那么肯定需要循环,但是如果在循环里面判断,会出现问题,所以应该怎么办呢let a = falsepeopleArr.forEach(item=>{ if(
2022-02-11 17:47:34
502
原创 js 防抖
// 手写防抖---简单实现 document.querySelectorAll('button')[0].addEventListener('click', debounce(handle, 1000)) function handle() {//要防抖的函数 console.log("东泽好帅啊") } function debounce(fn, delay) { // 只产生一个闭包 let timeId = null.
2022-02-10 15:12:24
498
原创 登陆实现流程(前端角度)
1、第一次登录的时候,前端调后端的登陆接口,发送用户名和密码2、后端收到请求,验证用户名和密码,验证成功,就给前端返回一个token3、前端拿到token,将token存储到localStorage和vuex中,并跳转路由页面4、前端每次跳转路由,就判断 localStroage 中有无 token ,没有就跳转到登录页面,有则跳转到对应路由页面5、每次调后端接口,都要在请求头中加token6、后端判断请求头中有无token,有token,就拿到token并验证token,验证成功就返回数据,验证
2022-02-08 15:57:50
4077
原创 eventloop
https://www.bilibili.com/video/BV1bE411B7ez?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click
2022-01-21 09:29:19
501
原创 pormise
文章推荐:V8 Promise源码全面解读,其实你对Promise一无所知 https://juejin.cn/post/7055202073511460895?share_token=78fda953-8497-46b1-9e5b-0b797db52b21
2022-01-20 17:18:44
272
原创 js 对象拼接
var target = {a : 1}; //目标对象var source1 = {b : 2}; //源对象1var source2 = {c : 3}; //源对象2var source3 = {c : 4}; //源对象3,和source2中的对象有同名属性cObject.assign(target,source1,source2,source3);//结果如下://{a:1,b:2,c:4}...
2022-01-19 10:06:22
2340
原创 js 根据对象数组中一个属性大小排序
var sdts = [ {name:"小明",age:30}, {name:"小红",age:20}, {name:"小花",age:40} ] function compare(property,desc) { return function (a, b) { var value1 = a[property]; var value2 = b[property];
2022-01-18 17:46:04
892
原创 html css 保留多行+。。。
text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
2022-01-18 15:23:35
164
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人