![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
爱上星星的鲸鱼
这个作者很懒,什么都没留下…
展开
-
一个用于面试的Promise源码
下面是一个用于面试的简单版的Promisefunction MyPromise(executor){ if(typeof executor !== 'function') throw new Error('请传入执行器函数executor 例如function(resolve,reject){}')//必须传入executor函数,如果不传是会报错的 let self = this;//保存this self.status = 'pending';//promise总共有三种状态,pendin原创 2021-07-30 17:18:40 · 141 阅读 · 0 评论 -
CSS_Column多列布局与break-inside: avoid
BGU解决方法break-inside: avoid;解决瀑布流图片队列文字换列问题不加break-inside: avoid;我们可以发现3有一部分到第二列去了加break-inside: avoid;3会在自己所占的这一列,不会换到第二列去1.多列属性column-countcolumn-count:指定了需要分割的列数div { -webkit-column-count: 3; /* Chrome, Safari, Opera */ -moz-column-co原创 2021-06-30 11:09:04 · 3395 阅读 · 1 评论 -
JS中的函数柯里化add(1, 2)、 add(1)(2)
1. 概念”函数柯里化”是指将多变量函数拆解为单变量的多个函数的依次调用, 可以从高元函数动态地生成批量的低元的函数。简单讲:就是利用函数执行,可以形成一个不销毁的私有作用域,把预先处理的内容都存在这个不销毁的作用域里面,并且返回一个函数,以后要执行的就是这个函数。面试过程中很多朋友应该都碰到过下面这个栗子:// 常规的add函数function add(x, y) { return x + y}// Currying后function curryingAdd(x) { re原创 2021-06-18 14:06:56 · 1281 阅读 · 2 评论 -
子元素使用position:fixed后宽度不能和父元素保持一致问题的解决方案
position:fixed定位的元素,宽度超出,怎么解决?最近做项目时,用fixed固定在窗口底部时,发现宽度超出。因为整体布局为左右结构,父元素采用flex布局。左侧固定宽度,右侧填充。右侧头部需要固定显示,下面内容可以滚动,width设置为100%时,发现超出父元素。初步解决方案:.header { height: 50px; line-height: 50px; border-bottom: 1px solid #cecece; box-shadow: 0 2px原创 2021-06-17 11:32:27 · 6741 阅读 · 1 评论 -
浏览器解析与渲染过程以及验证阻塞和渲染
解析过程是往复的,通常源码不会在解析过程中发生改变,但在html中,脚本标签包含的“document.write”可能添加标签,这说明在解析过程中实际上修改了输入。不能使用正则解析技术,浏览器为html定制了专属的解析器。 Html5规范中描述了这个解析算法,算法包括两个阶段——符号化及构建树原创 2021-06-17 11:00:01 · 251 阅读 · 0 评论 -
JS中用正则最简单的去获取url上的参数
JS中用正则最简单的去获取url上的参数最原始的方法去获取url上面的参数,需要写不少代码 let href = window.location.href, obj1 = {}, result1 = href.split("?")[1].split("&"); result1.forEach((item) => { let arr = item.split("="); obj1[arr[0]] = arr[原创 2020-05-23 23:55:16 · 255 阅读 · 0 评论 -
JS对象的万能深拷贝的方法
JS 对象的深拷贝的方法在js中我们的对象都是保存在堆中,当要使用的时候,通过栈中的指针去堆中找(指针寻址)let obj={name:'zhangsan',age:18}let copyObj=obj//此处拷贝只是复制了栈中指针,它和obj指向的是堆中同一个对象,当改变copyObj的属性,obj也会跟着变化,也就是我们说的浅拷贝copyObj.name='lisi'console.log(obj)//此处输出的结果{name:'lisi',age:18}如何进行深拷贝?1.常用的JSO原创 2020-05-23 00:35:05 · 662 阅读 · 0 评论