背景19年双十一的时候我组了一台黑苹果,自然也要选一个键盘。由于从来没有用过机械键盘,我决定买一个试试,需求如下: 红轴 简约高颜值 不要跑马灯 支持无线,双模更优 不要太贵 实际上我淘宝收藏夹里面早就收藏了大F的87圣手和minila,心水了好久。可惜缺点是贵,贵不是它们的缺点,是我的缺点。看了看我的钱包,对收藏的大F始终下不了手。 filco 87双模圣手二代(红轴 ¥1199) fil ... 继续阅读

阅读地址:王小波全集 王小波的拥趸们一般很称自己为「王小波门下的走狗」。主要是因为不知道王的人,会一点都不知道。知道王的人,通常会爱上王。论作家粉丝忠诚度,也许王小波在这方面达到了最高强度的爱意收割。 我接触到王小波的时候反而是因为李银河的《同性恋亚文化》,进而才发现王小波。那时候才高中毕业,看了《绿毛水怪》和书信集等作品,觉得这个人写的有意思,以至于周末打工休息的时候盯着小小的诺基亚屏幕在 ... 继续阅读

劫持对象属性的get/set特性是双向数据绑定的实现方式. 数据改变的时候, set中触发视图更新函数. 这种思路也就是常见的观察者模式. 手写双向数据绑定, 非常适合作为一道面试题, 它考察了 原型链/变量作用域/闭包/Dom/正则/设计模式等等知识点. // minivue.jsfunction miniVue(options) { this.$el = document.q ... 继续阅读

前言<Javascript高级程序设计>第23章的时候是介绍过indexedDB的, 今天单独把它重新写一遍. 后续给出的代码, 基本能够满足大部分人开发使用了. 为什么只写indexedDB? 我们可以打开chrome浏览器的控制台, 可以看到除了indexedDB实际上还有一种本地数据库方案 - Web SQL(它的语句和主流数据库操作语句没什么区别, 意味着前端还要另外学习sq ... 继续阅读

可维护性可维护性并不是js专有, 其他语言也有这么个说法, 可维护性最大的价值是让别人更好的在你代码的基础上维护和增减功能 什么是可维护的代码通常写入注释是为了让其他人更好地看懂自己写了啥, 不过我相信一条原则, 写的好的代码, 本身就是注释, 可维护的代码有以下几个特征: 可理解: 容易被理解 直观: 直观可读 可适应: 代码以一种数据上的变化不需要完全重写原来的方法 可扩展: 在某种程 ... 继续阅读

保持离线 Web 应用开发是 HTML5 的另一个重点。所谓离线 Web 应用,就是在设备不能上网的情况下仍然可以运行的应用。 开发离线 Web 应用需要几个步骤。首先是确保应用知道设备是否能上网,以便下一步执行正确的操作。然后,应用还必须能访问一定的资源(图像、JavaScript、CSS 等),只有这样才能正常工作。最后,必须有一块本地空间用于保存数据,无论能否上网都不妨碍读写。HTML5 ... 继续阅读

Ajax,是对 Asynchronous JavaScript + XML 的简写。 Ajax 技术的核心是 XMLHttpRequest 对象(简称 XHR),这是由微软首先引入的一个特性,其他浏览器提供商后来都提供了相同的实现。在 XHR 出现之前,Ajax 式的通信必须借助一些 hack 手段来实现,大多数是使用隐藏的框架或内嵌框架。XHR 为向服务器发送请求和解析服务器响应提供了流畅的接 ... 继续阅读

高级函数安全类型的检测JavaScript 内置的类型检测机制并非完全可靠。事实上,发生错误否定及错误肯定的情况也不在少数。比如说 typeof 操作符吧,由于它有一些无法预知的行为,经常会导致检测数据类型时得到不靠谱的结果。var isArray = value instanceof Array; 这个表达式要是想返回true,value必须是个数组,且必须与Array构造函数在同一个全局作用 ... 继续阅读