比较两个数组内容是否一致实际业务需求由于商城新出了一种”组合商品“的商品类型,所以该种商品的规格选择,和普通商品完全不同,需要重新写SKU选择组件;在编写过程中,服务端会给出已经组合好的商品规格,用户交互选择时,有该规格,才能选择,没有该规格,则置灰显示;此时就需要比较两个数组内容是否一致,因为服务端给出的规格,有可能是打乱的,比如说”L号,红色,材质一“,用户交互选择时,本地排序可能是”红色,L号,材质一“,其实内容完 2021-02-01 #js
px、rem、vw、rpx等单位的应用和原理为什么要剖析这几个单位不论是PC端、移动端、还是pad端、电视端等等,归根结底,它们都只是一块块大小不一的屏幕罢了; 现在的项目,手机端的展示会更多一些,公众号、小程序等,但是手机屏幕尺寸不同、大小不同,开发如何高保真实现UI图呢?并且能在不同机型上面表现一致,这就需要先弄清现在开发中常用的单位。 UI设计图为什么是750pxiphone屏幕参数前端在开发时,现在看到的设计图宽度,基本都是以750 2020-10-02 #js
手写深拷贝为什么需要深拷贝前端很多时候都会听到深拷贝,有深就有浅,深拷贝和浅拷贝区别在哪,我们为什么要使用深拷贝?什么场景要使用深拷贝?接下来就进行详细分析; 深浅拷贝的区别浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。 但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。 所以在实际业务场景中,需要修改原始数据并且要保留原始数据的完整 2020-08-13 #js
判断元素是否在视窗内业务说明有很多时候,进行图片懒加载或长列表元素滚动优化时,就要判断当前元素是否在视窗内可见 原理计算出当前元素相对目标元素的位置,比如上下左右分别是多少,就可以知道是不是在某一个视窗内; 具体可以用到Element.getBoundingClientRect()这个方法,MDN查看详情 具体实现自己写了一个简单的DEMO,判断小的元素,是否在大元素盒子之内,两者的比较,都是top、bottom、 2020-08-12 #js
判断数据类型的方法为什么要判断数据类型很多时候封装方法,需要根据不同类型进行不同的操作,所以需要准确判断出数据到底是什么类型 JS数据类型都有哪些基本类型:Number,String,Boolean,Undefined,Null,Symbol引用类型:Object,Array,Function,Date,RegExp,Map,Set 等 怎么判断使用typeof(不推荐)基本类型可以判断出来,但是像Array、Nu 2020-08-10 #js
原型和原型链详解定义原型:prototype,就是函数的一个属性而已,对象形式; 原型链:__proto__,保存着该对象的构造函数的prototype,也可以理解为儿子的__proto__ 存放着 爸爸的prototype; 示例1234567891011function Father() { }Father.prototype.des = '我是爸爸'const chi 2020-07-18 #js
Promise和async、awaitPromise是什么我就知道,很多人肯定直接说:Promise就是解决回调地狱的 ~ 那如果你在Promise.then里面,继续请求,继续then,无限嵌套,和回调地狱有什么区别? 所以,准确来说:Promise是异步问题同步化的解决方案,它的本质就是一个解决方案,最终目的让你的代码逻辑更清晰,更易于阅读。 实际业务场景怎么用看文章标题,我还写了async、await,这两个东西,肯定是和Pr 2020-06-19 #js
宏任务和微任务宏任务和微任务在JS中,宏任务和微任务是一个经常谈论起的话题,今天就简单说一下两者; 众所周知,JS是单线程的,所以干事情需要一件一件做,有先后顺序,有优先级; 2020-06-18 #js