背景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构造函数在同一个全局作用 ... 继续阅读

在很早一段时间, XML才是WEB开发首选的数据结构, 但是JSON的出现改变了这个事实, 相比XML, JSON更加简洁, 逻辑清晰, 读取信息的时候, 也不必创建DOM对象. 所以当下JSON是web开发最流行的数据格式. 语法JSON 的语法可以表示以下三种类型的值。 简单值:使用与 JavaScript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON ... 继续阅读