JavaScript函数式编程(一、二、三) 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西。在曾经的某个时代可能确实如此,但是近年来随着技术的发展,函数式编程已经在实际生产中发挥巨大的作用了,越来越多的语言开始加入闭包,匿名函数等非常典型的函数式编程的特性,从某种程度上来讲,函数式编程正在逐步“同化”命令式编程。
JavaScript 作为一种典型的多范式编程语言,这两年随着React的火热,函数式编程的概念也开始流行起来,RxJS、cycleJS、lodashJS、underscoreJS等多种开源库都使用了函数式的特性。所以下面介绍一些函数式编程的知识和概念。
JavaScript在物联网中的应用 凡是能用JavaScript写出来的,最终都会用JavaScript写出来。
—— Atwood定律
在那篇《最流行的编程语言JavaScript能做什么?》里,我们列举了JavaScript在不同领域的使用情况,今天让我们来详解一下JavaScript在物联网中的应用。
如何编写 jQuery 插件 看来 jQuery 你已经用得很爽了,想学习如何自己编写插件。非常好,这篇文档正适合你。用插件和方法来扩展 jQuery 非常强大,把最聪明的功能封装到插件中可以为你及团队节省大量开发时间。
开始
要编写一个 jQuery 插件,需要为 jQuery.fn 对象增加一个新的函数属性,属性名就是插件的名字
jQuery.fn.myPlugin = function() {
// 插件的具体内容放在这里
};
NodeJS中npm3相对于npm2模块依赖目录层次的改进 npm是node.js的包依赖管理工具,不过有的时侯项目依赖过多,造成路径过深,超过了操作系统的文件深度限制。NPM3对此做了很大改进。简单的来说将传统的嵌套结构改为了平铺结构
比如,有一个模块A,依赖 B.
用纯CSS停止冒泡和阻止浏览器默认行为及事件响应,达到禁用(disable)的目的 JavaScript有一个preventDefault方法, 他可用以来
取消事件的默认动作。比如取消打开链接,选择文本或拖放等。
event.preventDefault()
其实还有一种用纯css就能实现取消事件响应的方法,pointer-events,使用起来更加简单。
使用Bootstrap、Electron和JavaScript开发桌面应用 HTML一直是桌面软件的重点,各种桌面软件或者多或少都会嵌入一些HTML的代码。而自从在了Nodejs后,使用HTML制作桌面就成为了可能。
这要感谢node-webkit引入了对桌面的支持,然后electron推动了这个趋势。
由于node-webkit的支持力度似乎不够大,而electron已经有相应的比较成熟的产品Atom/VSCode,所以我倾向了electron.
今天我要介绍如何使用electron与bootsrap做一个桌面的应用。
乌云和漏洞盒子停业整顿—可能与国内“白帽子”黑客圈高度关注的“袁炜事件”有关 据京华时报报道,袁炜是乌云上的一名白帽子。2015年12月,他在乌云提交了其发现的婚恋交友网站世纪佳缘的系统漏洞。在世纪佳缘确认、修复了漏洞并按乌云平台惯例向漏洞提交者致谢后,事情突然发生转折。世纪佳缘在一个多月后以“网站数据被非法窃取”为由报警,4月份,袁炜被司法机关逮捕。在不久前的第四届网络安全大会上,袁炜的父亲发出公开信为儿子鸣冤,让袁炜的遭遇成为网络安全圈的热门事件。
世纪佳缘CEO吴琳光对此事也高度关注,并亲自回应称:“在警方披露调查结果前,世纪佳缘并不了解网站攻击者与漏洞提交者有何种关联。世纪佳缘报警是出于对用户隐私和公民信息安全的考虑,并不针对任何个人或组织。”
Redis和Memcached的区别-从源码解读Reids的实现原理 Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:
- Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
- 内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
- 性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
JavaScript的 Event Loop 模型 现如今,作为浏览器脚本语言的JavaScript几乎无处不在。作为软件开发人员,接触JavaScript语言也是不可避免的。由于项目需要,本人接触这门语言也有将近一年了。写这篇文章的原因也是对JavaScript语言本身的编程模型做一个总结,借以巩固自己对JavaScript的理解,并希望举一反三,通过了解其独特的编程模型,进一步消化吸收,提高自己知识的深度与广度。本文将介绍一些有关JavaScript并发模型的一些核心概念,包括event loop和消息队列等…
Python 之父谈 Python 的未来 6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为“Python Language”的演讲。近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来。我们一起来看看Guido老爹对Python的 未来是怎么看的吧。