![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
前端每日一题
文章平均质量分 56
每日一道前端面试题,望坚持
illion-78
志向远大程序猿
展开
-
虚拟列表及其原理
一、什么是长列表?前端的业务开发中会遇到一些数据量较大且无法使用分页方式来加载的列表,我们一般把这种列表叫做长列表。完整渲染的长列表基本上很难达到业务上的要求的,非完整渲染的长列表一般有两种方式:懒渲染:这个就是常见的无线滚动的,每次只渲染一部分(比如10条),等剩余部分滚到可见区域,就再渲染一部分。可视区域渲染:只渲染可见部分,不可见部分不渲染。虚拟列表就是采用的可视区渲染方式优化二、虚拟列表实现原理虚拟列表(Virtual List),是一种长列表优化方案,是可视区渲染列表。其两个重要原创 2021-02-22 19:57:52 · 10513 阅读 · 2 评论 -
localStorage时效性
如何设计一个localStorage,保证数据的时效性?localStorageHTML5的本地存储API中的localStorage与sessionStorage在使用方法上是相同的,区别在于sessionStorage在关闭页面后即被清空,而localStorage则会一致保存。localStorage是HTML5本地存储的API,使用键值对的方式进行存取数据,存取的数据只能是字符串。存储方式:以键值对(Key-value)的方式进行存取数据,存取的数据只能是字符串主要应用:购物车、客户登录原创 2021-01-05 19:55:07 · 1842 阅读 · 0 评论 -
实现规定算法: str = “2[a]1[bc]“,返回“aabc“
这里有一个约定的规则,实现一个方法decodeStr,输入一个字符串,根据约定规则输出编码结果。约定规则如下:// str = "2[a]1[bc]",返回"aabc"// str = "2[e2[d]",返回"eddedd"// str = "3[abc]2[cd]ff",返回"abcabcabccdcdff"// 可以看出:N[string],表示string正好重复N次。假设字符串一定是有效正确的字符串;但是你需要考虑其它可能出现的== 代码实现: ==//主函数var decodeS原创 2020-12-24 10:50:31 · 365 阅读 · 1 评论 -
微服务
什么是微服务,微服务跟单体应用的区别是啥,用微服务有啥好处一、什么是微服务所谓的微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。微服务可以按照业务划分,将一组特定的业务划分成一个服务,每个服务都有自己独立的数据库,独立部署,服务肢解通过REST API进行通讯。每一个独立运行的服务组成整个系统。...原创 2020-12-18 19:59:08 · 78 阅读 · 1 评论 -
老鼠识别毒水
有100瓶水,其中有一瓶有毒,小白鼠只要尝到一点有毒的水3天后就会死亡,至少要多少只小白鼠才能在3天内鉴别出哪瓶水有毒?解读每个老鼠只有死或活2种状态,因此每个老鼠可以看作一个bit,取0或1N个老鼠可以看作N个bit,可以表达2^N种状态(其中第n个状态代表第n个瓶子有毒)因此所有老鼠能表示的状态数能大于等于100即可。let n = 1;while (Math.pow(2,n) < 100) {n++;}console.log(n);答案为:7...原创 2020-12-15 19:48:31 · 356 阅读 · 0 评论 -
图片加载
完善下面函数,实现图片的加载function creatImg(url) {}creatImg(url).then((value) => { document.body.appendChild(value);})让图片有个延迟,一次加载图片的功能:function creatImg(url, delay) { return new Promise((resolve) => { const img = new Image(); img.s原创 2020-12-11 19:56:04 · 256 阅读 · 0 评论 -
数组排列组合
var arr = [[“A”,“B”],[“a”,“b”],[1,2]] 求二维数组的全排列组合 结果为:Aa1,Aa2,Ab1,Ab2,Ba1,Ba2,Bb1,Bb2var arr = [ ["A", "B"], ["a", "b"], [1, 2], ['G', 'g']];const getResult = (arr1, arr2) => { if (!Array.isArray(arr1) || !Array.isArray(arr2)) {原创 2020-12-10 18:55:37 · 379 阅读 · 1 评论 -
仓储系统-爆仓
实现以个简单的仓储系统,可以不断转入和转出货物,货物最多有两层子类目,数字代表该子类目转入/转出的数量。转出时不能出现爆仓情况。/*cargo 说明:key代表类目/子类目名称value为number时,代表这个类目的数量,为object时,代表下一层货物的集合,最多嵌套两层{ productA:{ //代表货物的类目名称 a:1, //1、代表子类目a 的数量 b:2, c:{ //c代表货物的子类名称 c1:1,原创 2020-12-09 19:28:52 · 146 阅读 · 0 评论