js
原谅我不够洒脱
这个作者很懒,什么都没留下…
展开
-
项目中维护一个随时更新的ui库的解决方案之一(uniapp+uview-plus)
项目中维护一个随时更新的ui库的解决方案之一原创 2023-03-06 15:55:06 · 753 阅读 · 0 评论 -
在html快速写vue或react
在html中快速写vue或react原创 2022-10-09 15:01:10 · 260 阅读 · 0 评论 -
js 手写call、apply(网上基本上的文章都不完善,都有bug)
js 手写call、apply原创 2022-06-13 15:41:33 · 126 阅读 · 0 评论 -
cancelanimationframe无效?不,你写法错了 ——踩坑日记
自己无聊 准备自己写一个老虎机来玩 要用关键帧来啥,开始了那肯定要结束不想看案例的,最底部有错误原因!!!错误写法const state = reactive({ render: 0 // 定义一个变量用来储存requestAnimationFrame})/** * 渲染动画 */const render = () => { const curIdx = state.idx[state.idx.length - 1] if (curIdx === 12) { c.原创 2022-04-26 17:40:14 · 4292 阅读 · 2 评论 -
window.history详细解析
Window.history是什么?Window.history是一个只读属性,用来获取History 对象的引用,History 对象提供了操作浏览器会话历史(浏览器地址栏中访问的页面,以及当前页面中通过框架加载的页面)的接口Window.history的interfaceenum ScrollRestoration { "auto", "manual" };[Exposed=Window]interface History { readonly attribute unsigne.原创 2022-03-31 11:20:34 · 11749 阅读 · 1 评论 -
原型对象,原型链的理解(__proto__,prototype)(构造函数和类)
创建一个对象可以通过一个类或者构造函数来创建构造函数// 简单创建一个 const Mum = function(a, b, c) { this.name = a this.age = b this.gender = c } const son1 = new Mum('zlz', 25, '男')每一个函数在创建的时候都会默认生成一个原型对象prototype,以Mum这个构造函数为例子:console.log(Mum.prototype){ constructor:.原创 2021-05-20 18:05:12 · 153 阅读 · 0 评论 -
ts(js)通用方法,提交给后端时去掉首尾空格
导出一个方法==paramsTrim==,传入一个参数==params==它的作用是将==params==里的值为string类型的去掉首位空格 不会改变params 返回新的==params==原创 2022-03-10 15:16:03 · 1659 阅读 · 0 评论 -
前端常用算法总结js
1.冒泡排序对相邻两个元素进行比较,若前一个大于后一个,则将两个元素调换位置,执行一次就会确定一个最大元素到数组的末尾,若排序的数组长度为n,那么第一次确定一个最大数需要比较n-1次,第二次n-2次,所以时间复杂度为 (n-1) + (n-2)+ … + 1 (n为奇数)那么就是n(n +1 )/2 (n为偶数)n^2 /2所以复杂度即为 O(n^2)js实现const arr = [8,342,645,7645,5673,234,63,456,346,54]/** * 冒泡排序 */.原创 2022-01-06 17:01:12 · 983 阅读 · 0 评论 -
前端下单互斥逻辑(vue3.0语法,可根据自己需求改造)
所有值都支持动态配置,会根据你所选择的配置置灰不能选择的规格(规格也是动态传入);而且支持规格不全选,也就是只选颜色、尺寸 其他的可不选 ,根据配置的规格效果图互斥逻辑组件,vue3语法、props里有默认值,可直接渲染出上图的效果<template> <div class="test-box"> <div class="list" v-for="(items, idx) in realFliterList" :key="idx"> .原创 2021-12-29 21:41:13 · 603 阅读 · 0 评论 -
nodeJs + TypeScript 解决导入的模块没有类型声明以及使用const重复声明
解决不同文件之间,用 const 声明相同变量,报错无法重新声明块范围变量解决方式:在文件末尾加入export{}原因:nodeJs 使用的是commonJs规范, 没有esModules概念,tslint将他不会当成是一个独立的作用域,利用export{}让tslint认为该文件是一个独立的作用域解决const fs = require(‘fs’) 出来的fs类型为any,使用过程中没有类型提示有类型声明,标准 es module 库:import * as xxxx from '' 或 im原创 2021-12-01 11:18:02 · 1797 阅读 · 0 评论 -
js实现dom元素横向、纵向滚动的动画
通过settime实现的滚动动画,支持反复点击变快支持水平滚动和竖直滚动,快速点击会将上次未滚动完的距离叠加,滚动的时间不变,滚动的速度会变快使用方式1.复制下方代码;2.导出对应的方法 movingColumn - 竖直滚动 moving--水平滚动3.函数接收3个参数 dom: 要滑动的元素 space: 点击一次要滚动的距离 istop/isLeft 是否向上/左滚动功能修改const hz = 60 在规定时间分几次滚动到目标位置 60是人肉眼可识别的刷新原创 2021-11-24 19:23:33 · 2091 阅读 · 0 评论 -
防抖节流hooks,传入一个普通函数返回一个带有防抖或者节流的函数
调用hooksFn方法,通过传入一个普通的函数,返回一个带有防抖或者节流的方法该方法接接收3个参数,返回一个新函数param: fn 需要进行防抖节流的普通函数param: time防抖节流的时间param: type需要返回的函数时防抖还是节流 (notShake:防抖 throttle:节流)type Type = 'notShake' | 'throttle'/** * @params fn 要处理的方法; time 时间; type 返回的方法类型(notShake:防抖原创 2021-11-24 11:31:34 · 943 阅读 · 0 评论 -
js千分位格式化,保留两位小数
传入正整数单位分 100000 得到 1,000.00/** * @memberof formartPrice * @param 传入正整数单位分 100000 * @returns 1,000.00 */export const formartPrice = (num) =>{ if (isNaN(num * 1)) { return num } num /= 100 num += '' if (!num.includes('.')) { num += .原创 2021-10-26 10:36:00 · 223 阅读 · 0 评论 -
js统一处理后端返回的null、undefined、空字符串
统一格式化后端返回的数据该方法直接修改原数据示例// 格式化前a:{ a1: undefined, a2: { b1: null }, a3: [{ c1: null }], a4: ''}// 格式化后a:{ a1: '-', a2: { b1: '-' }, a3: [{ c1: '-' }], a4: '-'}/***@params obj 要格式化的数组或者对象 type 将undefined、null、'' 要转化的内容*/expo.原创 2021-10-26 10:30:53 · 1887 阅读 · 0 评论