摘要: transform CSStransform属性允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。 旋转 rotate() 旋转 函数通过指定的角度参数使元素相对原点进行旋转。 它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度。 如果这个值为正值 阅读全文
posted @ 2019-07-31 11:23 guangzan 阅读(331) 评论(0) 推荐(1) 编辑
摘要: V8 实现了准确式 GC,GC 算法采用了分代式垃圾回收机制。因此,V8 将内存(堆)分为新生代和老生代两部分。 新生代算法 新生代中的对象一般存活时间较短,使用 Scavenge GC 算法。 在新生代空间中,内存空间分为两部分,分别为 From 空间和 To 空间。在这两个空间中,必定有一个空间 阅读全文
posted @ 2019-07-31 09:51 guangzan 阅读(525) 评论(0) 推荐(1) 编辑
摘要: Proxy Proxy 是 ES6 中新增的功能,可以用来自定义对象中的操作 let p = new Proxy(target, handler); // `target` 代表需要添加代理的对象 // `handler` 用来自定义对象中的操作 // 可以很方便的使用 Proxy 来实现一个数据绑 阅读全文
posted @ 2019-07-31 09:50 guangzan 阅读(170) 评论(0) 推荐(1) 编辑
摘要: Promise 是 ES6 新增的语法,解决了回调地狱的问题。 可以把 Promise 看成一个状态机。初始是 pending 状态,可以通过函数 resolve 和 reject ,将状态转变为 resolved 或者 rejected 状态,状态一旦改变就不能再次变化。 then 函数会返回一个 阅读全文
posted @ 2019-07-31 09:49 guangzan 阅读(210) 评论(0) 推荐(1) 编辑
摘要: call, apply, bind 区别 首先说下前两者的区别。 call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。 除了第一个参数外,call 可以接收一个参数列表,apply 只接受一个参数数组。 模拟实现 call 和 apply 可以从以下几点 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(172) 评论(0) 推荐(1) 编辑
摘要: Map 作用是生成一个新数组,遍历原数组,将每个元素拿出来做一些变换然后 append 到新的数组中。 Map 有三个参数,分别是当前索引元素,索引,原数组 FlatMap 和 map 的作用几乎是相同的,但是对于多维数组来说,会将原数组降维。可以将 FlatMap 看成是 map + flatte 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(642) 评论(0) 推荐(0) 编辑
摘要: Generator 是 ES6 中新增的语法,和 Promise 一样,都可以用来异步编程 从以上代码可以发现,加上 的函数执行后拥有了 next 函数,也就是说函数执行后返回了一个对象。每次调用 next 函数可以继续执行被暂停的代码。以下是 Generator 函数的简单实现 参考资料: "前端 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 一个函数如果加上 async ,那么该函数就会返回一个 Promise 上面代码会先打印 finish 然后再打印 object 。因为 await 会等待 sleep 函数 resolve ,所以即使后面是同步代码,也不会先去执行同步代码再来执行异步代码。 async 和 await 相比直接使用 阅读全文
posted @ 2019-07-31 09:47 guangzan 阅读(428) 评论(0) 推荐(1) 编辑
摘要: 元字符 |元字符 | 作用 | |: : | : | |. | 匹配任意字符除了换行符和回车符 | |[] | 匹配方括号内的任意字符。比如 [0 9] 就可以用来匹配任意数字 | |^ | ^9,这样使用代表匹配以 9 开头。[^9],这样使用代表不匹配方括号内除了 9 的字符 | |{1, 2} 阅读全文
posted @ 2019-07-31 09:46 guangzan 阅读(246) 评论(0) 推荐(1) 编辑
摘要: 在 ES5 中,我们可以使用如下方式解决继承的问题 以上继承实现思路就是将子类的原型设置为父类的原型 在ES6 中,我们可以通过 class 语法轻松解决这个问题 但是 ES6 不是所有浏览器都兼容,所以我们需要使用 Babel 来编译这段代码。 如果你使用编译过得代码调用 myDate.test( 阅读全文
posted @ 2019-07-31 09:45 guangzan 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 防抖 你是否在日常开发中遇到一个问题,在滚动事件中需要做个复杂计算或者实现一个按钮的防二次点击操作。 这些需求都可以通过函数防抖动来实现。尤其是第一个需求,如果在频繁的事件回调中做复杂计算,很有可能导致页面卡顿,不如将多次计算合并为一次计算,只在一个精确点做操作。 防抖和节流的作用都是防止函数多次调 阅读全文
posted @ 2019-07-31 09:45 guangzan 阅读(322) 评论(1) 推荐(1) 编辑