赞了文章2018-11-30
每个函数都有它自己的this值,在绝大多数情况下,this指向调用了函数的那个对象。为了自己更加清楚地认识this的指向,我总结出了以下几种情况:
发布了文章2018-11-30
在前端项目的规模和复杂性不断提升的情况下,各类构建思想和相应工具层出不穷。本文竭己所能对比了当下13个构建工具,包括Browserify、Webpack、Rollup、Grunt、Gulp和Yeoman6个广为流行的工具,FIS、Athena、WeFlow和Cooking等4个国产工具,以及三大框架:React,Vu...
发布了文章2018-08-31
在异步处理方案中,目前最为简洁优雅的便是async函数(以下简称A函数)。经过必要的分块包装后,A函数能使多个相关的异步操作如同同步操作一样聚合起来,使其相互间的关系更为清晰、过程更为简洁、调试更为方便。它本质是Generator函数的语法糖,通俗的说法是使用G函...
发布了文章2018-08-30
在异步处理方案中,目前最为简洁优雅的便是async函数(以下简称A函数)。经过必要的分块包装后,A函数能使多个相关的异步操作如同同步操作一样聚合起来,使其相互间的关系更为清晰、过程更为简洁、调试更为方便。它本质是Generator函数的语法糖,通俗的说法是使用G函...
发布了文章2018-08-20
ES6提供了一种新型的异步编程解决方案:Generator函数(以下简称G函数)。它不是使用JS现有能力按照一定标准制定出来的东西(Promise是如此出生的),而是具有新型底层操作能力,与传统编程完全不同,代表一种新编程逻辑的高大存在。简洁方便、受人喜爱的async函数就...
发布了文章2018-08-17
ES6提供了一种新型的异步编程解决方案:Generator函数(以下简称G函数)。它不是使用JS现有能力按照一定标准制定出来的东西(Promise是如此出生的),而是具有新型底层操作能力,与传统编程完全不同,代表一种新编程逻辑的高大存在。简洁方便、受人喜爱的async函数就...
发布了文章2018-08-10
ES6新增了两种基本的原生数据集合:Set和Map(加上Array和Object现在共有四种),以及由两者衍生出的弱引用集合:WeakSet和WeakMap。从某个不无狭隘的角度看(不无狭隘?到底有多狭隘多不狭隘呢?),Set更为类似Array集合的某种提升,而Map则为Object集合的增强,虽...
赞了文章2018-07-23
大家都说前端写页面较多,几乎用不到算法。本文愿从弹幕设计这个场景来描述算法在前端中的应用,我们先来看下实现效果: {代码...} 开场之前我们先来描述弹幕开发的难度,再集中精力描述算法设计的思路。 如何保证不同字号的弹幕不碰撞 弹幕的位置计算 弹幕的速度控...
发布了文章2018-07-20
遍历器Iterator是ES6为访问数据集合提供的统一接口。任何内部部署了遍历器接口的数据集合,对于用户来说,都可以使用相同方式获取到相应的数据结构。如果使用的是最新版Chrome浏览器,那么你要知道——我们所熟悉的数组小姐,已悄悄的打开了另一扇可抵达她心扉的小径。
发布了文章2018-07-12
网上有很多自称能实现移除JS注释的正则表达式,实际上存在种种缺陷。这使人多少有些愕然,也不禁疑惑到:真的可以用正则实现吗?而本篇文章以使用正则移除JS注释为目标,通过实践,由浅及深,遇到问题解决问题,一步步看看到底能否用正则实现!
发布了文章2018-07-10
本文主要介绍了ES6中Proxy和Reflect的精华知识,并附有恰当实例。Proxy意为代理器,通过操作为对象生成的代理器,实现对对象各类操作的拦截式编程。Reflect是一个包揽更为严格、健全的操作对象方法的模块。因为Proxy所能代理的方法和Reflect所包括的方法基本对应,而...
发布了文章2018-07-04
监听输入框的输入,最原始的方法是使用keyup事件。 不使用change事件,它只会在输入框失去焦点后被触发。 此方式兼容性广,但效率较低,毕竟任意的按键都会触发该事件。
发布了文章2018-06-29
某天,突发奇想,发了封邮件给木匠师傅,定制一个如此这般的家具。 木匠有求必应,即是说,邮件一旦发出就得到了他的承诺(Promise):在下一定尽力。
发布了文章2018-06-26
JS采用IEEE 754标准的64位双精度格式存储数值。 数值的精度最多可达到53个二进制位(1个隐藏位和52个有效位)。 如果数值的精度超过此限度,第54位及后面的会被丢弃。
回答了问题2018-06-25
没有平滑的过渡是因为div.b的横向排列方式。当前一个div消失时,会突然增加后者需要前进的距离,这样就不协调了。也是之前设置成2s的原因。
回答了问题2018-06-25
你可以将使用mapSet的地方贴出来。原因应该是该数据不仅在VueX中被watch,还在其它地方被watch了,引发循环问题。在设置以及取出VueX的数据时,都可以将数据深度拷贝一份,即是说去掉Vue附加的get/set监听。
发布了文章2018-06-22
箭头函数没有自己的this,其使用的this是引用外层的(类似闭包)。 因此其里面的this是固定的,在定义的那一刻起就已经确定,不会再变。
发布了文章2018-06-20
本篇概括了ES6中正则表达式新增部分的精华要点(最好有ES5的基础)。 1 u 标志 使正则处于Unicode模式。 关于ES6的字符扩展知识,可查看这里。 1.1 四字节字符 处于Unicode模式下的正则,可以正确识别32位(四字节)字符。 {代码...} 处于Unicode模式下的正则,支持...
发布了文章2018-06-13
JS内部使用UTF-16编码规则(网页通常为UTF-8)。 1字符固定为2字节,1字节为8位(二进制),其码点小于0xFFFF。 有些符号的码点大于0xFFFF,需4字节表示,即常说的32位UTF-16字符。
发布了文章2018-06-11
它是JS的第七种类型,属于基本类型。 它表示一个独一无二的值,行为类似字符串。 它是直接通过Symbol函数生成的,可以传入字符作为该值的描述。