#JavaScript

之前在使用一些开源项目时,经常会看到在控制台输出项目大大的 LOGO。例如:

  • hexo minos 主题启动时在控制台里会显示「MINOS」文案
  • fis3 启动时也会有显示「FIS」

添加这种大号「艺术字」可以达到「品牌露出」的效果,当然,也是程序员特有「情趣」的体现。 😄

但它们的实现方式无外乎把编排好的 Logo 通过 console.log 输出。这种方式问题在于它几乎没有任何复用能力,而且一些需要转义的情况还会导致字符串的可维护性极差。因此,我花了一个周末的时候,实现了一个易用的、可复用的控制台「艺术字」lib。这样,下次有新的需求,只需要把正常的文本传给它,它就可以帮你自动编排与打印

阅读更多>>

Use CommonJS modules directly in the browser with no build step and no web server.

以前我们要在浏览器中使用 CommonJS 都需要一堆编译工具和服务器,但本文要介绍一种方式,支持在浏览器直接打开本地 HTML 源文件中使用 CommonJS 加载模块。

阅读更多>>

学习一个东西最好的办法就是重新创造一遍,React 也不例外。这个仓库里是我写的一个类 React 库,支持 JSX / 生命周期 / Ref / Context API 等一些常用特性,同时包含了 Stack 与 Fiber 两种 Reconciler。当然,其中有很多简化,很多低性能的地方,甚至会有 Bug。但是作为学习资料,还是具有一定价值的。

阅读更多>>

在一些性能敏感的场合下(例如服务端处理大量并发),或面对大量 stringify 的操作时,我们会希望它的性能更好,速度更快。这也催生了一些优化的 stringify 方案/库,那么,在他们大幅的性能提升背后的技术原理是什么呢?

阅读更多>>

今天带大家一起来看看下,如何实现“划词高亮”功能。

笔者前段时间为线上业务实现了一个与内容结构非耦合的文本高亮在线笔记功能。非耦合是指不需要为高亮功能建立特殊的页面 DOM 结构,而高亮功能对业务近乎透明。该功能核心部分具有较强的通用性与移植性,故拿出来和大家分享交流一下。

阅读更多>>

“服务器推”技术由来已久,从最初的简单轮询,到后来基于长轮询的 COMET,到HTML5规范的 SSE,以及实现全双工的 WebSocket 协议,“服务器推”的技术不断发展。本文会介绍这些技术的基本原理以及实现方式,来帮助大家迅速了解与掌握“服务器推”各类技术的基本原理。demo 地址

阅读更多>>

前段时间碰到一个需求:在表单中有一个字段叫金额,用户希望点击该输入框后(focus),能够自动为其金额数字后加上“万元”两个字。虽然这个需求可以通过其他的设计方式规避(例如在文本框后加入“万元”等),但是,既然碰到了问题,肯定还是希望能够研究一下技术解决方式。

对这个需求进行抽象,其实需要完成的任务就是:通过js来控制输入框内光标的位置。要完成这个任务,需要介绍一个input元素的方法: HTMLInputElement.setSelectionRange()

阅读更多>>

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×