javascript
优秀的土豆丝
一个不想敲代码的程序猿
展开
-
什么防抖与节流,它们的区别是什么?应用什么场景如何实现
函数防抖(debounce)和 函数节流(throttle)都是为了限制函数的执行频次,来优化函数触发频率过高导致的响应速度跟不上触发频率,出现延迟,假死或卡顿的现象(例如input,keyup,keydown,scroll,resize,mousemove等)函数防抖:触发完事件 n 秒内不再触发,才执行;如果n秒内事件再次被触发,则重新计算时间应用场景:用户在输入框中连续输入一串字符后,只会在输入完后去执行最后一次的查询ajax请求,这样可以有效减少请求次数,节约请求资源window的res原创 2020-08-28 10:56:57 · 969 阅读 · 0 评论 -
记录一次闭包解决的问题
场景:vue-awesome-swiper的点击事件中既要访问swiper的实例也要访问vue的实例(此时this只能访问到swiper的是对象)解决方案: 利用闭包把vue的实例this当做参数传入点击事件参数swiperOptionPicLunbo: { pagination: { el: '.swiper-pagination', clickable: true }, touchMoveStopPropagation: true, loop: true,原创 2020-08-05 16:49:00 · 163 阅读 · 0 评论 -
vue keep-alive缓存下 video src改变 页面不刷新
video 的 src值改变了,但是页面视图视频未更新解决方案:video的src不要绑定在source标签的src上,而是直接绑定video标签的src属性上原创 2020-06-03 18:03:15 · 722 阅读 · 2 评论 -
正则常用方法test,match,search,replace
1. test()方法使用方法: Reg.test(str) 找到返回true,否则false 找到第一个后就会停止向后找let str = 'abcdefg'let reg = /b/console.log(Reg.test(str)) =>true2. match()方法str.match(Reg) 不匹配返回null ,匹配到就返回对应的数组let str ...原创 2020-03-17 15:43:33 · 986 阅读 · 0 评论 -
js如何实现一个深拷贝和浅拷贝
基本数据类型和引用数据类型的区别基本数据类型 Number、String、Boolean、Null、 Undefined、Symbol(ES6) 特点: 数据存放在栈内存中,复制的时候是值传递引用数据类型Object(Array,Date,RegExp,Function)特点: 存储的是该对象在栈中引用深拷贝和浅拷贝的区别深拷贝深拷贝复制变量值,对于引用数据,则递归至基本类...原创 2020-03-09 16:42:54 · 259 阅读 · 0 评论 -
vue excel下载(记一次post请求下载乱码问题)
参数必须加responseType: ‘blob’,不然会乱码axios.get(url, { params: { ...params }, responseType: 'blob' }) .then(res => { if (!res) return let url...原创 2019-12-19 15:12:09 · 1342 阅读 · 0 评论 -
js中如何从对象中过滤出指定的值
1. includeslet params = { 7: '关于我们', 3: '新手购物', 6: '客户服务' }let title = '' for (let key in params) { if ([this.id].includes(key)) { title = params[key] } }...原创 2019-05-17 14:35:52 · 15142 阅读 · 0 评论 -
数组对象筛选(根据对象某几个key筛选)
cartParams () { // 数组对像 let carts = [] this.waitOrders.map((item) => { // 循环数组对象对每个数据进行处理 返回需要得数据 carts.push({ sku: item.productSn, quantity: item.quantity, type: item.type, cartId: item.i...原创 2019-04-18 10:15:33 · 7593 阅读 · 0 评论 -
数组去重以及数组对象去重
数组去重并降序排列var arr = [1, 8, 5, 6, 4, 2, 3, 8, 6, 7, 5, 3];var res = [];for (var i = 0; i < arr.length; i++) {if (res.indexOf(arr[i]) == -1) {res.push(arr[i]);res.sort(function (a, b) {return b...原创 2019-04-04 17:50:25 · 330 阅读 · 0 评论 -
加载控制器
loadDataDone 为了防止空页面在请求没回来的时候显示初始值: false请求成功:true请求失败: true data: { loadDataDone: false,// 加载控制初始值 }, app.request.http(params, (res) => { if (res.status == 200) { ...原创 2019-01-16 08:57:18 · 147 阅读 · 0 评论 -
如何将一维数组变成二维数组
function (arr, size) { var arr2 = [] for (var i = 0; i < arr.length; i = i + size) { arr2.push(arr.slice(i, i + size)) } return arr2}原创 2019-04-18 10:27:03 · 10709 阅读 · 1 评论 -
跨域的几种解决方法
来源(https://segmentfault.com/a/1190000011145364?share_user=1030000010564287)什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。广义的跨域:1.) 资源跳转: A链接、重定向、表单提交2.) 资源嵌入: <link>、<script>、<im...转载 2019-04-18 10:21:19 · 192 阅读 · 0 评论