获得徽章 0
重排/回流(Reflow):当DOM的变化影响了元素的几何信息,浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排。表现为重新生成布局,重新排列元素。
重绘(Repaint): 当一个元素的外观发生改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做重绘。表现为某些元素的外观被改变

单单改变元素的外观,肯定不会引起网页重新生成布局,但当浏览器完成重排之后,将会重新绘制受到此次重排影响的部分
重排和重绘代价是高昂的,它们会破坏用户体验,并且让UI展示非常迟缓,而相比之下重排的性能影响更大,在两者无法避免的情况下,一般我们宁可选择代价更小的重绘。
『重绘』不一定会出现『重排』,『重排』必然会出现『重绘』。
展开
2
webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。我们可以使用webpack管理模块。因为在webpack看来,项目中的所有资源皆为模块,通过分析模块间的依赖关系,在其内部构建出一个依赖图,最终编绎输出模块为 HTML、JavaScript、CSS 以及各种静态文件(图片、字体等),让我们的开发过程更加高效。
评论
协商缓存:第一次请求资源时,服务器会返回资源以及资源标识,当下次请求时,会对比资源标识,如果一致,则只返回状态码304,不用返回资源,如果不一致,则会返回资源和新的资源标识。 协商缓存主要依赖的响应头包括last-modified和ETag。
评论
执行栈是一个存储函数调用的栈结构,遵循先进后出的原则。它主要负责跟踪所有要执行的代码。每当一个函数执行完成时,就会从堆栈中弹出(pop)该执行完成函数;如果有代码需要进去执行的话,就进行 push 操作。
评论
setTimeout属于异步任务中的宏任务。当代码按顺序读到setTimeout函数时,会执行它开始计时,计时完成后把setTimeout函数里面的内容放入宏任务队列中等待后续被主线程读取。

如果setTimeout的时间设置非常大,当主任务和微任务中的内容都执行完毕时间都还没结束,那么会等到时间到了再进入宏任务队列并被主线程读取。
如果setTimeout的时间设置比较小,在主任务和微任务中的内容执行完毕之前就结束了,那么它在时间到了以后就会被加入宏任务队列,并且当主任务和微任务内容读取完毕以后会立刻调用宏任务中加入的setTimeout函数里面的内容。只有同步任务执行完了才会去执行异步任务,哪怕异步任务已经到时间了。
在同一环境中有多个setTimeout函数时(都在主任务或者都在微任务中),setTimeout函数中内容被放入宏任务队列的顺序与代码书写的顺序无关,而是与计时器时间设定的长短有关,时间越长则越后加入队列,也越后被读取执行。
展开
评论
1、返回原数组指定两个下标之间的新数组:slice()
2、删除 插入 替换数组 【参数不同】 :splice()
3、将参数添加到数组的最后,返回新数组的长度:push()
4.删除数组的最后一个元素,返回被删除的值(减少数组的长度):pop()
5.向数组的开头添加一个或多个的元素,并返回新的长度:unshift()
6.删除数组的第一个参数,数组的长度减1:shift()
7.按指定的参数对数组进行排序,返回的值是经过排序后的数组: **sort()
** 8.将数组中的元素进行反转,倒序显示:reverse()
9.用分隔符将数组的元素组成一个字符串:join()
10、从数组的开头向后查找,(接受两个参数,要查找的项和查找起点的位置索引):indexOf()
11、从数组末尾开始获取:lastIndexof()
12、遍历数组:for
展开
评论
进程是程序一次动态执行的过程,是程序运行的基本单位。
每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。
进程占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、页表、文件句柄等)比较大,但相对比较稳定安全。协程切换和协程切换
评论
?表示匹配某元素0次或1次。(前面一个)

[]表示字符集合,表示匹配集合中的任一字符;

[a-zA-Z\d]表示匹配一个小写字母或者大写字母或者数字;

\w 表示匹配字母数字下划线

+表示匹配某元素1次或者多次

*表示匹配某元素0次或者多次

\D表示匹配非数字字符

\d匹配数字,{m,n}表示最少匹配m次,最多匹配n次;
展开
评论
typeof 判断 null [] {} Date()时,均返回Object


arr.toString将数组返回成字符串

因此判断一个JS对象是否为Array,最好的方法是

Object.prototype.toString.call(arr)==='[object Array]';

1 in [1] 表示数组里面是否有1这个索引值

var可以重复定义,但是let不能;也不能var let混合定义,会报错
展开
评论
src用于加载外部资源,因此它会阻塞页面的渲染。
当浏览器遇到src属性时,它会停止解析HTML,直到加载完该资源。
href不会阻塞页面的渲染,因为它只是一个链接,浏览器会在后台加载它。
评论
fn()包着一个匿名函数,形成闭包,而且这个匿名函数的this指向window对象。

闭包中的变量(不是里面的匿名函数),不会被垃圾回收,因此还会保持原来的值,保持着引用。

函数是被封装的代码,结构是静态的,只有调用函数,才能被执行。
展开
评论
下一页
个人成就
文章被阅读 525
掘力值 82
收藏集
0
关注标签
2
加入于