🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

0 篇文章

功能 - 对异步函数使用 promise

2019-03-31 描述转换异步函数使其返回 promise。提示使用柯里化返回一个函数,该函数返回一个调用原始函数的 Promise。使用扩展运算符传入所有的参数。在 Node8+ 中,你可以使用 util.promisify 代码 constpromisify=func=>(...args)=>newPromise((resolve,reject)=>func(...args,(err,result)=>(e

功能 - 函数管道

2019-03-30 描述从左到右依次执行传入的函数组合。提示对接受的函数参数使用扩展运算符后便可用 Array.prototype.reduce()来执行从左到右的函数组合。第一个(最左边)函数可以接受一个或多个参数,剩下的函数只能为一元函数。代码 constpipeFunctions=(...fns)=>fns.reduce((f,g)=>(...args)=>g(f(...args)));示例对参数

功能 - 异步函数管道

2019-03-29 描述为输入的异步函数进行从左到右的依次执行。提示对接受的函数参数使用扩展运算符后便可用 Array.prototype.reduce()来执行从左到右的函数组合。为接受的异步函数使用 Promise.then()。接受的函数参数可以返回以下组合:简单值,Promise,或者定义为 async 函数且通过 await 返回的异步值。所有函数必须是一元的。代码 constpipeAsyncFunc

功能 - 传入的参数应用到指定函数中

2019-03-28 描述创建一个函数,使其可以调用提供的函数和参数进行转换。提示使用 Array.prototype.map()让传入的转换函数能够一一对应接受传入的参数。通过扩展运算符将组装好的转换函数传给 fn。代码 constoverArgs=(fn,transforms)=>(...args)=>fn(...args.map((val,i)=>transforms[i](val)));示例依次计算

功能 - 传入的函数都使用同一参数运行

2019-03-27 描述创建一个函数,该函数可以使用传入的每一个方法来接收的给定的可扩展参数作为参数执行后并返回结果。提示使用 Array.prototype.map()和 Function.prototype.apply()将传入的函数进行迭代并应使用给定的参数。代码 constover=(...fns)=>(...args)=>fns.map(fn=>fn.apply(null,args));示例获取

功能 - 参数位置更改

2019-03-26 描述使用函数作为参数,然后将该函数的第一个参数作为最后一个参数。提示使用扩展运算符接受第二个及以后的参数返回一个接受可变参数的闭包函数,并交换输入参数的位置代码 constflip=fn=>(first,...rest)=>fn(...rest,first);示例对象合并:leta={name:'JohnSmith'};letb={};constmergeFrom=flip(Obj

功能 - 对函数依次调用每一个传入的参数

2019-03-25 描述将使用数组为参数的函数修改为使用可变参数的函数。提示接受该函数 fn 为参数并返回一个闭包函数闭包函数使用扩展运算符将所有输入作为数组传入 fn 函数中。代码 constcollectInto=fn=>(...args)=>fn(args);示例对多个异步请求的返回进行输出处理:constp1=Promise.resolve(1);constp2=newPromise(resolve=

功能 - 调用对象属性的方法

2019-03-24 描述根据输入的关键字和一组参数使返回的函数可以根据传入的参数去执行关键字方法。提示使用闭包调用传入的关键字和一组参数。使用柯里化函数。代码 constcall=(key,...args)=>context=>context[key](...args);示例对数组进行计算并返回其结果:call('map',x=>2*x)([1,2,3])//[2,4,6]Promise.resolv

功能 - 限制函数的参数个数

2019-03-23 描述创建一个最多接受 n 个参数的函数,他可以忽略任何多余的参数。提示参数 fn 为提供的函数,n 为函数最多接受的参数的个数,可使用 Array.prototype.slice(0,n)和扩展运算符...。代码 constary=(fn,n)=>(...args)=>fn(...args.slice(0,n));示例依次获取长度不同的数组中的前 2 位中较大的值:constfirstTwoMax

5 Games That Teach You How to Code

TheseWebgameswillgiveyouafunandengagingintroductiontotheworldofprogramming.CodeCombatCodeCombatisanHTML5role-playinggame(RPG)thatteachesyoufundamentalprogrammingconcepts.InCodeCombat,youplayaheroadvent

Java 开源博客——B3log Solo 0.6.1 正式版发布了!

Java 开源博客——B3LOGSolo0.6.1 正式版发布了!欢迎大家下载。该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤。特性基于标签的文章分类 PingGoogleBlogSearchEngine 博客/标签 Atom/RSS 输出 Sitemap 输出评论回复及邮件提醒自定义页面置顶/相关/随机/站外相关文章文章、页面永久链接(Permalink)文章草稿夹、签名档、更新提示缓存管理多用户多语

js 日期格式化

日期格式化就是根据输入的时间戳和需要格式化的标准格式输出符合格式的日期。如“yy-MM-ddHH:mm”的到的就是 12-11-1303:12 实现最土的办法莫过于 switch...case...这次是彻底的土了一会,而且稀里糊涂的在分和小时上 +1。多谢 slnevergiveup 的支出,及给出了非常棒的解决方法。先贴下代码。toDate:function(time,format){vardateTime

高效代码审查的十个经验

转自:http://www.williamlong.info/archives/3272.html 代码审查(CodeReview)是软件开发中常用的手段,和 QA 测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。1.代码审查要求团队有良好的文化团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。“A 的代码有个 bug 被

超简洁 textarea 高度自适应

不废话。直接上代码。$("#commentContent").val("").keyup(function(event){//ctrl+enter 提交评论 if(event.keyCode===13&&event.ctrlKey){Comment.add(Label.articleOId);}//根据换行符设置 rowsthis.rows=this.value.split("\n").length;//

工具文化

自己平时也是非常喜欢用小工具的,那样即可以省事,不用机械的去重复做一些事情,又可以提高效率。最重要的是当开发出来的小工具被使用来减轻工作量时,那个心情是不能被金钱和时间所替代的。工具对一个团队,一个公司有着非常非常重要的作用:提高效率,保证代码质量,把线上问题危害降至最低,减少人工成本,节约时间。。。在支付宝的日子虽然短暂,但隔三岔五总有一些小工具冒出来。虽然有重复的、功能接近的,有用后更加复杂的,

window resize 优化:after resize completed, fire event

场景:每当 window 发生变化时,需要对其内部的某些元素大小重新设定。原因:如果页面本身就非常复杂,在对内部元素大小设定后,可能导致整个页面重新渲染。调用 resize 方法,只要用户不停的改变窗口大小就会对页面进行不停的渲染,最终导致大量消耗 CPU,页面就卡卡卡。尤其是 IE6,如果 resize 影响到了 window 大小,将会继续 resize,最终导致不停的 resize,然后就崩溃了。思路:在用户 resi

超级简单的公告逐条循环滚动 ^^

一开始想着要自己写,从哪里开头呢?找插件吧。呃,还是自己写吧。要不还是找个插件吧,我找啊找啊找啊找。不合适吶。。。终于看到个源码,还是自己写吧。超级简单的,思路为:1.只需把公告整体先向上滑动以遮住第一条;2.滑动结束后,恢复原来现状,把第一个元素放于最后一个元素之后反之向上滚动源码:https://github.com/Vanessa219/bowknot/blob/8d09a8192ca1d59

GAE 博客——B3log Solo 0.4.0 正式版发布了!

GAE 博客——B3LOGSolo0.4.0 正式版发布了!这是 0.4.0 的正式版,主要是加入了移动皮肤支持,并修复了一些 Bugs。特性基于标签的文章分类 PingGoogleBlogSearchEngine 博客/标签 Atom/RSS 输出 Sitemap 输出评论回复及邮件提醒自定义页面置顶/相关/随机/站外相关文章文章、页面永久链接(Permalink)文章草稿夹、签名档、更新提示缓存管理多用户多语言换肤插

GAE 博客 —— B3LOG Solo 0.4.0 将于 2 月 19 日发布!

GAE 博客——B3LOGSolo0.4.0 将于 2 月 19 日发布!这是 0.4.0 的正式版,主要是加入了移动皮肤支持,并修复了一些 Bugs。b3log.org 二级域名由于网络原因,是不能直接访问 GAE 提供的二级域名(*.appspot.com)的。部署了 Solo 的同学可以邮件至 DL88250#gmail.com 申请免费使用 b3log.org 二级域名。项目如果在使用、测试中发现任何问题,如果您有任何意见或建

10 个顶级 JavaScript 动画框架推荐

使用 JavaScript 可以做出一些引人注目的动画效果,但通常不太容易实现。本文为你整理了 10 个非常优秀的 JavaScript 动画框架,使用它们你可以轻松实现动画效果。1.RaphaëlRaphaël 是一个小型 JavaScript 库,用于简化你的 Web 矢量图形工作。如果你想创建独特的图表或图形的裁剪和旋转部件,你可以使用这个简单方便的库来实现。源码 + 演示 2.Processing.js 该框架主要针对不