旋转放大动画 <!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-width, initial-scale=1.0"> <title>Document&l.
【npm】检查用户是否使用了最新包 const packageJSON = require('./package.json')const exec = require('child_process').execconst npmPackageName = 'NeteaseCloudMusicApi'; // 包名exec(`npm info ${npmPackageName} version`, (err, stdout, stderr) => { if (!err) { let version = stdout.
面经 百度一面 useMemo、useCallback区别,怎么用useMemo实现useCallback bfc 求两数组交集 手写函数柯里化 父div里两个子div(inline-block),为什么两个子div中间会有小缝隙,如何解决 外边距重叠,及解决方案 手写bind百度二面从url输入到浏览器渲染的全过程 什么是合成层 react高阶组件是什么,你见过哪些通用的高阶组件,如何实现 手写节流防抖 状态码301 302 啥意思 304协商缓存 强缓存 1000个请求
处理null导致的函数默认参数失效 // 处理null导致的函数默认参数失效const nullLess = (fn,unValid=[null]) => (...args) => fn(...args.map(item=>new Set(unValid).has(item) && void 0));const add = (a=1) => console.log(a);add(); // 1add(null); // nullconst add2 = nullLess(add);..
【1LineCode】一行代码节流防抖 const debounce = (fn,timeout = 1000,_timer) => (...args)=>clearTimeout(_timer(_timer = setTimeout(fn.bind(this,...args),timeout)))const throttle = (fn,timeout = 1000,_flag=true) => (...args)=>_flag &&setTimeout(()=>{_flag = true;.
如何实现串行promise // 模拟ajaxconst ajax = (id,timeout=500) => () => new Promise(resolve=>setTimeout(resolve.bind(null,id), timeout));// arr:参数数组// fn:对每个参数需要执行的函数const main = (arr,fn)=>{ const [values,reasons] = [[],[]]; return new Promise(resolve=&g.
React hooks acc 〇、引我们通常使用ahooks作为reacthooks库,它为我们的开发提供方便的同时,也引起了我们的思考,开源社区还有哪些还不错的reactHooks库呢?本文是从github中找到的各类hooks的整理,希望为我们开发、学习提供帮助。一、零散hook name github keyword reference use-immer https://github.com/immerjs/use-im.
Promise.objAll 先说Promise.all我们都知道Promise.all的功能,入参是一些promise(也可以不是),返回跟入参位置一一对应的promise结果。那我们有时候也需要处理一批异步任务,返回结果保存在不同字段中,我们可能会这样写const eat = await eatPromise;const listen = await listenPromise;return { eat, listen}这样写有什么缺点?每个await是一个任务,eat任务执行完,才能执行listen任务,
互联网人如何在理想和利益中寻求平衡 十年前老师:你们那帮后排的学生,天天艮了艮了you了you了的,不好好学习以后挑大粪去啊?我们低头小声嘀咕:你才去挑大粪。十年后tl:咱们要搞一个lowcode平台,这玩意好不好用再说,主要是说出去多好听啊,你下个月的晋升就稳了。我:领导您说的是(内心os:wtf)不知道从什么时候开始,我们喜欢谈利益,好像周围的人也都在说。“你可得好好学习啊,为了挣大钱,为了牛逼”“出来工作就是为了赚钱的嘛”“年底了,要评绩效了,我得好好表现,争取拿A”如果我..
等待页面所有图片加载完毕 const waitImgLoaded = async (root) => { const imgs = root instanceof HTMLImageElement ? [root] : root.querySelectorAll('img'); return await Promise.all( imgs.reduce((total,img)=> ( total.concat(new Promise(resolve=>{.
js data structure class ListNode { constructor(v,next){ this.v = v; this.next = next; } link(next){ this.next = next; return this; } linkArr(arr){ let cur = this; for(let i = 0,len = arr.length; i < l.
手写flat const flat = (arr)=>arr.reduce((total,cur)=>total.concat( Array.isArray(cur)?flat(cur):cur),[]);
Date.now() 比 +new Date()快多少 先说结论:3.3倍测试代码如下:const calcTimeConsuming = (fn) => { const res = []; for(let k = 0 ; k< 100; k++){ let start = Date.now(); for(let i = 0 ; i< 1000; i++){ for(let j = 0 ; j< 1000; j++){ .
js获取cookie的公共方法 const res= document.cookie.split('; ').reduce((total,prev)=>{ const [key,value] = prev.split('='); return {...total,[key]:value} },{});
批量替换json中的字段名 const replaceSome = (repalceNames = []) => (originObj = {}) => repalceNames.reduce(((total, { o, n }) => Object.assign(total, { [n]: originObj[o] })), {});// const obj = {name:'哈喽',age:'12'};// const repalceNames = [{o:'name',n:'newName'},{o.
怎么使用dayjs实现momentjs的fromNow功能 文档demoimport dayjs from 'dayjs';import relativeTime from 'dayjs/plugin/relativeTime';dayjs.extend(relativeTime);export const renderNumCalls = ({num = 0, time = '--'}) => ( <React.Fragment> {/* time === 1595817403565 */}