最新 | 最热门 | 最高评价

+0  Reduce 和 Transduce 的含义

Tag: JavaScript
阮一峰 发于 2017年03月18日 16:50 | 点击: 296 | 展开摘要
学习函数式编程,必须掌握很多术语,否则根本看不懂文档。

本文介绍两个基本术语:reduce和transduce。它们非常重要,也非常有用。

一、reduce 的用法

reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。

var arr = [1, 2, 3, 4];

var sum = (a, b) => a + b;

arr.reduce(sum, 0) // 10

上面代码中,reduce对数组arr的每个成员执行sum函数。sum的参数a

查看全文: http://www.udpwork.com/item/16182.html

+0  Pointfree 编程风格指南

Tag: JavaScript
阮一峰 发于 2017年03月13日 06:56 | 点击: 336 | 展开摘要
本文要回答一个很重要的问题:函数式编程有什么用?

目前,主流的编程语言都不是函数式的,已经能够满足需求。为何还要学函数式编程呢,只为了多理解一些新奇的概念?

一个网友说:

"函数式编程有什么优势呢?"

"我感觉,这种写法可能会令人头痛吧。"

很长一段时间,我根本不知道从何入手,如何将它用于实际项目?直到有一天,我学到了 Pointfree 这个概念,顿时豁然开朗,原来应该这样用!

我现在觉得,Pointfree 就是如何使用函数式编程的答案。

一、程序的本质

查看全文: http://www.udpwork.com/item/16173.html

+0  Ramda 函数库参考教程

Tag: JavaScript
阮一峰 发于 2017年03月09日 08:35 | 点击: 294 | 展开摘要
学习函数式编程的过程中,我接触到了 Ramda.js。

我发现,这是一个很重要的库,提供了许多有用的方法,每个 JavaScript 程序员都应该掌握这个工具。

你可能会问,Underscore 和 Lodash 已经这么流行了,为什么还要学习好像雷同的 Ramda 呢?

回答是,前两者的参数位置不对,把处理的数据放到了第一个参数。

var square = n => n * n;
_.map([4, 8], square) // [16, 64]

上面代码中,_.

查看全文: http://www.udpwork.com/item/16166.html

+0  Chrome开发者工具的小技巧

Tag: Web开发 | 编程工具 | Chrome | CSS | HTML | Javascript
陈皓 发于 2017年01月19日 20:25 | 点击: 639 | 展开摘要
Chrome的开发者工具是个很强大的东西,相信程序员们都不会陌生,不过有些小功能可能并不为大众所知,所以,写下这篇文章罗列一下可能你所不知道的功能,有的功能可能会比较实用,有的则不一定,也欢迎大家补充交流。

话不多话,我们开始。

代码格式化

有很多css/js的代码都会被 minify 掉,你可以点击代码窗口左下角的那个 { }  标签,chrome会帮你给格式化掉。

强制DOM状态

有些HTML的DOM是有状态的,比如<a> 标签,其会有 active

查看全文: http://www.udpwork.com/item/16066.html

+0  Intellij IDEA中Maven解决依赖失效

Tag: java | idea | maven
suchasplus 发于 2016年12月26日 23:37 | 点击: 841 | 展开摘要
最近在折腾Maven和Sonatype的Nexus, 倒霉催的国内和公司网络...

Nexus配合finalspeed或者kcptun倒是很给力,  但是Intellij就经常出问题, 出现红字也不动, 默认开了auto import也无效

解决方式是在IDEA右侧Maven Projects面板中, 点击M图标的CMD

输入mvn -U idea:idea

坐等结果完成即可

查看全文: http://www.udpwork.com/item/16032.html

+0  一些前端框架的比较(下)——Ember.js和React

Tag: JavaScript | Recommended | Ember.js | Flux | React | Redux
四火 发于 2016年12月26日 04:44 | 点击: 400 | 展开摘要
这是前端框架比较和吐槽的第二篇。

Ember.js

Ember.js的extend的写法很类似于JQuery或者是Backbone.js,创建Application,然后在它下面创建相应的Model(Object)、Controller、Router、View和Template,这些都是非常类似的。但是它更为先进的地方在于,一些重复的样板代码,比如给template注入上下文并渲染,如果命名按照CoC的原则正确完成的话,都由框架自动完成,这就省去不少体力活。CoC还体现在

查看全文: http://www.udpwork.com/item/16035.html

+0  一些前端框架的比较(上)——GWT、AngularJS和Backbone.js

Tag: JavaScript | Recommended | AngularJS | Backbone | GWT
四火 发于 2016年12月23日 08:11 | 点击: 509 | 展开摘要
和一些前端框架打过交道,想起来这也是技术选型中经常面对的内容。我把我的经验、思考、感受,甚至是吐槽,记录在这里,有些零散,并且更多的是个人的感悟。而且由于技术所限,可能部分内容不够深入,或者不甚客观。当然,网上有很多分析对比,视角可能更为全面和系统。如果你在技术选型,或者在考虑要学习使用哪一款MVC/MVP/MVVM框架的时候,此文能够给你有价值的信息,就更棒了。如果你觉得我哪些部分说得不正确,或者需要补充,也烦请告知。

需要预先说明的是,这篇文章不是教程,因此如果你对其中

查看全文: http://www.udpwork.com/item/16027.html

+0  JavaScript 全栈工程师培训教程

Tag: JavaScript
阮一峰 发于 2016年11月15日 09:08 | 点击: 541 | 展开摘要
我现在的技术方向,前端是 React,后端是 Node,时间都投入在这两方面。

最近有一种感觉,我可以融汇贯通了,使用 JavaScript 全栈解决各种问题。

最初,我只是想整理一份技术清单,理清思路。但是内容越写越多,索性就做成一个教程,放在 Github 上面。这份教程一共四章,可以在两天内学完,适合那些已掌握前端基本技能(HTML、CSS、JS)、想进一步进修、成为 JavaScript 全栈工程师的读者。

我的写作目标是内容完整、脉络清晰、通俗易懂,帮助初学

查看全文: http://www.udpwork.com/item/15919.html

+0  IntersectionObserver API 使用教程

Tag: JavaScript
阮一峰 发于 2016年11月03日 07:53 | 点击: 367 | 展开摘要
网页开发时,常常需要了解某个元素是否进入了"视口"(viewport),即用户能不能看到它。

上图的绿色方块不断滚动,顶部会提示它的可见性。

传统的实现方法是,监听到scroll事件后,调用目标元素(绿色方块)的getBoundingClientRect()方法,得到它对应于视口左上角的坐标,再判断是否在视口之内。这种方法的缺点是,由于scroll事件密集发生,计算量很大,容易造成性能问题。

目前有一个新的 IntersectionObserver API,可以自动"观

查看全文: http://www.udpwork.com/item/15900.html

+0  如何读懂并写出装逼的函数式代码

Tag: 杂项资源 | 程序设计 | 编程语言 | Closure | functional | Javascript | Y combinator
陈皓 发于 2016年10月23日 17:56 | 点击: 508 | 展开摘要
今天在微博上看到了 有人分享了下面的这段函数式代码,我把代码贴到下面,不过我对原来的代码略有改动,对于函数式的版本,咋一看,的确令人非常费解,仔细看一下,你可能就晕掉了,似乎完全就是天书,看上去非常装逼,哈哈。不过,我感觉解析那段函数式的代码可能会一个比较有趣过程,而且,我以前写过一篇《函数式编程》的入门式的文章,正好可以用这个例子,再升华一下原来的那篇文章,顺便可以向大家更好的介绍很多基础知识,所以写下这篇文章。

先看代码

这个代码平淡无奇,就是从一个数组中找到一个数,

查看全文: http://www.udpwork.com/item/15886.html

+0  Java regex Matcher’s first group is the whole pattern

Tag: Java | Regex
Haidong Ji 发于 2016年10月21日 00:07 | 点击: 443 | 展开摘要
I didn’t realize that Java’s regex class, Matcher, uses m.group(0) to denote the entire pattern. I spent some time debugging it. Hence this note.

As is stated in the documentation, “Capturing groups are indexed from left

查看全文: http://www.udpwork.com/item/15884.html

+0  npm scripts 使用指南

Tag: JavaScript
阮一峰 发于 2016年10月11日 19:03 | 点击: 402 | 展开摘要
Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。

本文介绍如何使用 npm 脚本(npm scripts)。

一、什么是 npm 脚本?

npm 允许在package.json文件里面,使用scripts字段定义脚本命令。

{
// ...
"scripts": {
"build": "node build.js"
}
}

上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一

查看全文: http://www.udpwork.com/item/15868.html
|<<<1234567>>>| 一共40页, 473条记录