漫谈promise使用场景

2018-02-03
阅读 6 分钟
6.1k
深入理解promise 对于现在的前端同学来说你不同promise你都不好意思出门了。对于前端同学来说promise已经成为了我们的必备技能。 那么,下面我们就来说一说promise是什么,它能帮助我们解决什么问题,我们应该如何使用它? 这是我个人对promise的理解。欢迎吐槽 :) Promise是什么 promise的意思是承诺,有的人翻译为许...

express如何使用session与cookie

2018-01-30
阅读 6 分钟
9.5k
我们都知道http的请求和响应式相互独立的,服务器无法识别两条http请求是否是同一个用户发送的。也就是说服务器端并没有记录通信状态的能力。我们通常使用cookie和session来确定会话双方的身份。

JavaScript 观察者模式

2018-01-26
阅读 3 分钟
4.2k
就如我们在专卖店预定商品(如:苹果手机),我们会向专卖店提交预定申请,然后店家受申请,正常这样就完事了。假如,近段时间苹果手机的需求很大,而商品有限,那么商家就会要这些果粉预留电话等待通知,等到手机一到,商家就会遍历果粉预留信息,然后发通知给这些果粉。生活中商家强调客户在家等通知即可,并且说一有...

JavaScript iterator 设计模式

2018-01-24
阅读 3 分钟
2k
说起迭代器,想必对ES6有了解的同学应该不会陌生。我们知道,for ... of 遍历的对象必须是迭代器对象,而普通对象则不能,因为普通对象内部没有实现迭代器,而像数组则内部实现了迭代器,所以可以用for ... of 的语法,而对于一般对象在ES5中有专门的处理方法,for ... in 和 Object.keys() ,而 for ... in 可遍历所有...

webpack引入eslint详解

2018-01-22
阅读 3 分钟
14.7k
注:formatter默认是stylish,如果想用第三方的可以安装该插件,如上方的示例中的 eslint-friendly-formatter 。

javascript 代理模式

2018-01-21
阅读 5 分钟
2.5k
使用代理的原因是我们不愿意或者不想对原对象进行直接操作,我们使用代理就是让它帮原对象进行一系列的操作,等这些东西做完后告诉原对象就行了。就像我们生活的那些明星的助理经纪人一样。

如何用babel将ES6转换为指定的版本的ES代码

2018-01-20
阅读 5 分钟
10.1k
由于新版本的ECMASscript的强大特性,使我们写js代码更加得心应手,例如:calss,let,for...of,promise等等,但可惜的是这些js新特新只被最新版本的浏览器支持,那么指定范围的低版本的浏览器的支持就需要一个专门的工具,babel就是这样的一块前端工具。

javascript 数据类型判断 (常见库的数据类型判断源码的分析)

2018-01-17
阅读 5 分钟
2.8k
JavaScript一共有六种数据类型,分为原始类型(又名基本类型)和对象类型(又名引用类型) 原始类型有五种,分别为number,string,boolean,undefined,null五种。 对象类型常见的有Function,Array,Date,正则 ES6新增Symbol JavaScript 自己提供的乐行判断 type 如果不对对象做严格区分使用type。 number: {代码...}...

javascript 策略设计模式

2018-01-16
阅读 3 分钟
1.5k
比如说春节快要到了,我们要回家,回家我们就要选择交通工具。怎么回家我们就需要制定方案。比如说我吧,我们家在河南一个农村,不管是汽车,火车,飞机都没有直达的。我可以选择从北京到郑州乘火车,然后从北京到长葛做长途汽车,然后从长葛到家做短途汽车。当然也可以选择其他方式,这就要根据自己的实际需要,时间不...

JavaScript 单例模式

2018-01-15
阅读 6 分钟
26.7k
比如线程池、全局缓存等。我们所熟知的浏览器的window对象就是一个单例,在JavaScript开发中,对于这种只需要一个的对象,我们的实现往往使用单例。

漫谈javascript函数式编程

2018-01-12
阅读 8 分钟
2.9k
JavaScript的设计者在设计最初就参考了LISP方言之一的Scheme,引入了Lambda表达式、闭包、高阶函数等内容,正是因为这些特性让JavaScript灵活多变。

学习正则(告别复制粘贴)

2018-01-09
阅读 4 分钟
1.8k
知识学到自己手里的才是自己的,如果复制,粘贴别人的对自己帮助并不大,它只能帮自己解决一时的问题(有时还要花费自己大量的时间来查找),而不能从根本上解决问题。

30-seconds-code——browser

2018-01-04
阅读 7 分钟
1.7k
英文文章来源于:[链接] Browser currentURL 返回当前页面的 URL。 用 window.location.href 获得当前的 URL. {代码...} getURLParameters 返回一个包含当前页面 URL 的参数的对象. 用 match() 和一个合适的正则来获得所有的键值对, 用Array.reduce() 去映射它们到一个对象内。用 location.search 获得当前 url 的参数....

this,call和apply(这三个东西,如何牢牢记住)

2018-01-03
阅读 5 分钟
1.8k
这三个东西虽然一直再用,也用的很顺手,知道它的用法,也知道它的区别,但是最近在攻克设计模式这个高地时总感觉缺点什么,没得办法,就只好重新学习一下。并总结了些许个人心得,分享给大家。

面向对象的JavaScript(如何一步步成为js高手)

2018-01-03
阅读 3 分钟
2.3k
‘工欲善其事,必先利其器’,在深入学习JavaScript之前,我认为我们很有必要了解以下,JavaScript这门面向对象的动态语言到底是一门什么样的语言。

设计模式(通往高手之路的必备技能)

2018-01-02
阅读 2 分钟
3k
‘从大处着眼,从小处着手’,以前对这句话一知半解,自从踏出校门走入社会,开始工作以来,有了越来越深的理解,偶有发现这句话用在程序开发中也有用,所以,近段时间开始尝试着分析jQuery源码,分析angularjs源码,学习设计模式。

掌握面试——弹出框的实现(一道题中包含布局/js设计模式)

2018-01-02
阅读 8 分钟
4k
面试不是个轻松的活,不管是对面试官还是面试者都一样。对于面试官来说,别的先不管,首先一点技术要过关,对候选人的基本要求就是基础扎实,有相关项目经验,有解决问题的能力,思路清晰,易于沟通。而对于面试者来说要技术扎实,知识面要广,要有技术闪光点,对于各种技术提起来都知道点,但经不起深层次的询问,这种‘...

30-seconds-code——array

2017-12-31
阅读 12 分钟
1.8k
英文文章来源于:[链接] Array 数组最大公约数 (arrayGcd) 计算数字数组最大公约数 (gcd). 用 Array.reduce() 和 gcd 运算式 (使用递归) 计算一个数字数组的最大公约数. {代码...} 数组最小公倍数 (arrayLcm) 求数字数组的最小公倍数 (lcm). 用 Array.reduce() 和 lcm 运算式 (使用递归) 计算一个数字数组的最小公倍数. ...

30-seconds-code——math

2017-12-31
阅读 7 分钟
1.7k
英文文章来源于:[链接] Math 数组求和 (arraySum) 返回数字数组的和. 用 Array.reduce() 加每一个value到累加器, 初始值为 0. {代码...} 数组求平均值( arrayAverage) 返回一个数组的平均值. 用 Array.reduce() 加每一个value到累加器, 初始值为 0, 除以数组的 length . {代码...} clampNumber Clamps num within the i...

观察者设计模式

2017-12-30
阅读 10 分钟
1.7k
观察者设计模式是一个好的设计模式,这个模式我们在开发中比较常见,尤其是它的变形模式订阅/发布者模式我们更是很熟悉,在我们所熟悉jQuery库和vue.js框架中我们都有体现。我在面试中也曾经被问到observer和它的变形模式publish/subscribe,说实话,当时有点懵。随着工作经历渐多,也认识到它的重要性,特别是当你想要...

30-seconds-code——function

2017-12-30
阅读 3 分钟
1.3k
英文文章来源于:[链接] Function chainAsync 异步执行函数链. 循环一个包含异步事件的函数数组, 当异步事件执行完毕后调用 next 方法. {代码...} curry 函数的柯里化. 用递归.如果传入的参数对象 (args) 是有效的, 然后调用传入的函数 fn.否则返回 fn 和剩余参数中它所需的参数.如果想要柯里化一个接受任意参数的函数(...

30-seconds-code——Object

2017-12-29
阅读 4 分钟
1.8k
用递归的方法用 Object.keys() 方法遍历JSON对象然后删除不是include在给定数组中的属性.如果你传入 childIndicator ,它将对该键所对应的JSON对象进行深度遍历.

30-seconds-code——adapter

2017-12-29
阅读 2 分钟
1.9k
英文文章来源于:[链接] Adapter call 给定一个键值和一组参数,但给定一个上下文时调用它们。 使用闭包调用存储的键值与存储的参数 {代码...} collectInto 改变一个可以接受数组为参数的函数成为可变量函数. 给定一个函数,它返回一个把所有传入的参数转变为数组的闭包函数. {代码...} flip Flip 利用一个函数作为参数...

外观设计模式

2017-12-29
阅读 3 分钟
1.9k
当我们竖起一个门面时,我们向外展示的只是一种外表,它可能隐藏着一个非同一般的事实。这也就是我们所要说的外观设计模式,这种模式为一大段的代码体提供了一个便捷的高级接口,隐藏了底层复杂的实现。这种设计模式简化代码的呈现形式,给开发人员一个API,同时也能提高代码的可用性。

constructor设计模式

2017-12-29
阅读 3 分钟
1.4k
在经典的面向对象编程语言中,constructor是一个特殊的方法,被用来初始化一个新建的对象,一旦该对象被分配内存话。 在JavaScript中几乎所有的东西都是一个对象,然而常常引起我们兴趣的是对象的constructor。 对象的构造函数用于创建特定类型的对象(既要准备使用对象,也要接收参数),构造函数在创建对象时可以用来...

HTML5中的 `data-*` 如何处理数据详解

2017-12-26
阅读 5 分钟
12.8k
写过HTML5页面,或者做过H5开发的同学或多或少都接触过data-*这个自定义Attribute(对Attribute和property还分不太清的同学,可以看一看傻傻的分也分不清楚的property和attribute)这篇文章。

30-seconds-code——string

2017-12-24
阅读 4 分钟
2.4k
使用递归.遍历字符串中的每个字符, 计算剩余字符串的所有顺序.用 Array.map() 区合并该字符和剩余字符串的每种顺序, 然后用 Array.reduce() 将该字符串的所有顺序合并到一个数组中.当字符串的 length 等于 2 或者 1 时,是两个基例.

30-seconds-code ——utility集合

2017-12-24
阅读 5 分钟
2.1k
返回一个customCoalesce, 用自定义函数中的validate函数是否返回true来对customCoalesce中传入的参数列表尽心过滤.

掌握Javascript面试:什么是闭包?

2017-12-23
阅读 4 分钟
2.1k
在JavaScript的面试中我通常将这个问题放在第一个或者最后一个问题。坦白地说,如果你没有深入的学习闭包你的JavaScript不可能有很深的造诣。

老生常谈之闭包(你不可不知的若干知识点)

2017-12-23
阅读 3 分钟
1.4k
闭包是什么?这是一个在面试的过程中出现的概率为60%以上的问题,也是我们张口就来的问题。但是我们往往发现,在面试的过程中我们的回答并不那么让面试官满意,我们虽然能张口说出一些但是却不能系统的对这个问题进行回答。面试官希望加入自己团队的是一个基础扎实,条理清晰,举一反三,吃苦耐劳的人,如果我们在面试中...