
js
Slueia
这个作者很懒,什么都没留下…
展开
-
react route中 url变了但是页面却没有变的情况
https://segmentfault.com/q/1010000009790180转载 2021-03-24 18:21:00 · 1687 阅读 · 0 评论 -
Object.assign()
https://www.jianshu.com/p/d5f572dd3776转载 2021-02-05 14:27:52 · 91 阅读 · 0 评论 -
减少重绘与回流的方法
1、分离读写解决:增加样式类或者批量处理2、缓存处理3、运用文档碎片/字符串拼接let frg = document.createDocumentFragment()4、动画效果应用到position属性为absolute或fixed的元素上(脱离文档流)5、开启CSS3硬件加速(GPU渲染)transform/opacity/filters这些属性会触发硬件加速,不会引发重绘或回流6、牺牲平滑度换取速度...原创 2020-12-10 21:47:33 · 647 阅读 · 0 评论 -
轮播图
https://www.bilibili.com/video/BV16W41127aQ1、如何实现展示图片的层叠给list设置position:relative,给每个图片item设置position:absolute设置一个.active类中有属性z-index来控制谁在前面,index指向谁就把这个类给谁 items[index].className = ‘item active’2、淡入淡出动画3、设置原点的活跃属性4、如何知道点了哪个小圆点?在li标签中加 data-index原创 2020-12-09 17:21:16 · 87 阅读 · 0 评论 -
30、函数柯里化
https://www.bilibili.com/video/BV1RA411E7aN?from=search&seid=16423820892491259743转载 2020-12-07 17:29:54 · 60 阅读 · 0 评论 -
async面试题解析
https://my.oschina.net/u/3375885/blog/2986147原创 2020-12-04 17:19:37 · 308 阅读 · 0 评论 -
从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
https://www.cnblogs.com/cangqinglang/p/8963557.html关于setTimeout/setInterval:https://www.jb51.net/article/168646.htm关于预防重绘/回流https://www.bilibili.com/video/BV1a4411z7Dv?p=2原创 2020-12-04 16:34:21 · 75 阅读 · 0 评论 -
21、Object.create 和new区别
https://blog.youkuaiyun.com/chjunjun/article/details/80698710https://blog.youkuaiyun.com/blueblueskyhua/article/details/73135938原创 2020-12-03 16:16:43 · 108 阅读 · 0 评论 -
22、DOM的location对象
https://blog.youkuaiyun.com/persional_zhangchao/article/details/18409639原创 2020-12-03 15:29:28 · 284 阅读 · 0 评论 -
19、addEventListener和onclick的区别
https://blog.youkuaiyun.com/rudy24/article/details/52586257https://blog.youkuaiyun.com/viewyu12345/article/details/79171215原创 2020-12-03 15:23:43 · 123 阅读 · 0 评论 -
19. JS中的String、Array和Math方法
https://www.cnblogs.com/lihuijuan/p/8490578.html转载 2020-12-03 15:06:20 · 204 阅读 · 0 评论 -
18、js垃圾回收机制
https://segmentfault.com/a/1190000018605776转载 2020-12-03 14:02:17 · 84 阅读 · 0 评论 -
js运行机制
https://www.cnblogs.com/cangqinglang/p/8963557.html转载 2020-12-02 14:32:19 · 98 阅读 · 0 评论 -
从输入URL到页面呈现的过程
1、首先,浏览器会请求DNS把这个域名解析成对应的IP地址。2、然后,根据这个IP地址在互联网上找到对应的服务器,建立socket链接,向服务器发送一个HTTP Get请求,由这个服务器决定返回默认的数据资源给访问的用户。3、在服务器端实际上还有复杂的业务逻辑:服务器可能有多台,到底指定哪台服务器处理请求,这需要一个负载均衡设备来平均分配所有用户的请求。4、还有请求的数据是储存在分布式缓存里还是一个静态文件中,又或者是在数据库里。5、当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(css,j转载 2020-12-02 13:29:04 · 178 阅读 · 0 评论 -
冒泡、选择、插入、快排、归并的实现
冒泡: var arr = [29,45,51,68,72,97]; //外层循环,控制趟数,每一次找到一个最大值 for (var i = 0; i < arr.length - 1; i++) { // 内层循环,控制比较的次数,并且判断两个数的大小 for (var j = 0; j < arr.length - 1 - i; j++) { // 白话解释:如果前面的数大,放到后面(当然是从小到大的冒泡排序)原创 2020-11-30 21:07:35 · 122 阅读 · 0 评论 -
16、Array.sort()方法和实现机制
该排序方法每个浏览器中实现的都不太一样chrome 目前采用快排(QuickSort)和插入排序(InsertaionSort),而对于火狐,它采用归并排序(MergeSort)。而IE使用快排。V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数量小于10的数组使用 InsertionSort,比10大的数组则使用 QuickSort。...原创 2020-11-30 18:43:41 · 259 阅读 · 0 评论 -
15、DOM常见的操作方式
获取DOM:通过使用 getElementById() 方法匹配元素的id属性来访问元素节点,对元素节点进行操作 通过使用getElementsByTagName() 方法匹配元素的tagName来访问元素节点,对元素节点进行操作 通过使用getElementsByClassName() 方法匹配元素的className来访问元素节点,对元素节点进行操作 值得注意的是,getElementsByTagName() 和 getElementsByClassName()这两种方法因为其访问的是节点中原创 2020-11-30 18:34:14 · 128 阅读 · 0 评论 -
14、作用域和作用域链
1. 什么是作用域作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。我们可以这样理解:作用域就是一个独立的地盘,让变量不会外泄、暴露出去。也就是说作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。2. 全局作用域和函数作用域在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:1、最外层函数和在最外层函数外面定义的变量拥有全局作用域2、所有末定义直接赋值的变量自动声明为拥有全局作用域原创 2020-11-30 17:00:48 · 125 阅读 · 0 评论 -
12、深拷贝和浅拷贝
概念:拷贝就是复制的意思深拷贝就是完全在另一个地址空间复制当前的值,而浅拷贝就是只复制指向复杂数据类型的指针,并没有创建一个新的地址空间转换方法1 用JSON下的方法(缺点是不能克隆其中的函数):let deepClone = function (obj) { let result = JSON.parse( JSON.stringify(obj);); //先将对象转换为json字符串形式 //将转换而来的字符串转换为原生js对象 };转换方法2 用递归实现:原创 2020-11-30 12:06:29 · 70 阅读 · 0 评论 -
13、防抖和节流
1 函数防抖和节流函数防抖和节流是优化高频率执行js代码的一种手段,js中的一些事件如浏览器的resize、scroll,鼠标的mousemove、mouseover,input输入框的keypress等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能。为了优化体验,需要对这类事件进行调用次数的限制。在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。代码:function debounce(fn, delay) { let timer; //原创 2020-11-30 11:49:43 · 73 阅读 · 0 评论 -
28、宏任务与微任务
原理图setImmediate 也是宏任务,在 Node 环境下,微任务还有 process.nextTickJS 中用来存储待执行回调函数的队列包含 2 个不同特定的列队宏列队:用来保存待执行的宏任务(回调),比如:定时器回调、DOM 事件回调、ajax 回调微列队:用来保存待执行的微任务(回调),比如:promise的回调、MutationObserver 的回调JS 执行时会区别这 2 个队列JS 引擎首先必须先执行所有的初始化同步任务代码每次准备取出第一个宏任务执行前, 都要将所有的.转载 2020-11-30 10:28:17 · 389 阅读 · 0 评论 -
6、JS中new的原理及实现
var key = [].shift.call(arguments)的理解:1.Func.call(thisArg,…args):以thisArg作为this值,args为参数来执行Func函数,这里是以arguments作为this值来执行,不传参数;2.arguments:在函数内部,arguments代表函数的参数组成的类数组对象,这里即为形如[1,2]的类数组对象;3.shift:在一个数组上调用shift方法,将该数组第一个元素删除,并返回删除的元素;意思就是在1,2上调用shift方法,原创 2020-11-26 22:50:26 · 143 阅读 · 0 评论 -
3、变量的结构赋值
https://blog.youkuaiyun.com/caomage/article/details/84339041转载 2020-11-25 16:12:15 · 54 阅读 · 0 评论 -
5、bind、call、apply的区别
https://juejin.cn/post/6844903567967387656转载 2020-11-25 13:56:02 · 83 阅读 · 1 评论 -
4、数组的常见API
https://www.cnblogs.com/cxf1214/p/11391762.html转载 2020-11-25 13:42:32 · 77 阅读 · 0 评论 -
3、类数组与数组的区别与转换
https://blog.youkuaiyun.com/qq_37635012/article/details/106195211转载 2020-11-25 13:31:02 · 175 阅读 · 0 评论 -
2、判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor
https://www.cnblogs.com/onepixel/p/5126046.html转载 2020-11-25 13:15:12 · 160 阅读 · 0 评论