Hi 👋,欢迎访问我的博客


我是一名前端开发者,VS Code 插件和语言服务器开发者

我目前在开发基于 LSP 的 语言服务器,也在维护用 Go 构建的编译器

这里查看更多关于我的更多信息


我希望通过这个博客记录技术知识,提升影响力。如果你感兴趣,可以看看这些文章:

我为 VS Code 贡献了代码:这篇文章登上了阮一峰的科技爱好者周刊

LSP 与 VS Code 插件开发 第一章:记录我对 LSP 和语言服务器开发系列文章

怎么让 favicon 动起来:发现了吗,本网站的 favicon 会动



页面滚动时为什么没有触发 mouseleave 事件

背景

工作中碰到一个带有 tooltips 的按钮。预期是鼠标放在按钮上,显示 tooltips,鼠标移开时不显示。利用 mouseenter 和 mouseleave 实现了这个鼠标交互。


阅读全文

JS 对象到原始值的转换

背景

工作中遇到一个 Long.js 对象,它通过对象的方式存一个 Long 类型的数据。大致长这样:


阅读全文

JS defineProperty

背景

Object.defineProperty,这个方法用于在对象上定义属性,语法是

1
2
3
4
5
6
const a = {}
Object.defineProperty(a, 'b', {
value: 1
})

a.b // 1

阅读全文

JS 的类型判断

typeof

结论:nullfunction 不符合直觉;无法识别 NaNInfinityArray;浏览器实现的对象因浏览器而异


阅读全文

漫谈微信小程序

前言

我有过大约 10 个月的时间,参与开发了一款体量较大的电商小程序。在这期间看着它体积暴涨、从野蛮生长到逐步治理,总结一些经验和思考

小程序的优势


    阅读全文

    DOM property 与 attribute 详解

    引入

    最近在学 vue,看到 v-bind 有两个修饰符 .prop .attr,分别用于强制绑定 DOM PropertyDOM Attribute
    两者都被译为属性,学一下具体是怎么一回事


    阅读全文

    同源策略与跨域

    同源策略

    同源策略限制了一个源的 document 和 script 如何与另一个源交互。
    源是指协议域名端口,同源指两个 URL 的源相同


    阅读全文

    ES6 合集

    Symbol

    目的

    从语言层面提供一种不会重复的唯一性的值,而不关心具体的值是什么。


    阅读全文

    前端性能监控指标与实现

    背景

    从浏览器底层 api 说起,结合浏览器渲染原理,自底向上谈谈前端性能监控的指标具体都是如何实现的

    W3C 提供了测试 Web App 性能特征的规范,和时间模型:


    阅读全文

    小程序跨分包复用代码方案

    背景

    为了减小用户一次性需要下载的代码体积,提高应用加载速度,小程序提出了代码分包的概念:
    主包:无论小程序冷启动时正在加载哪个包的页面,都会默认加载主包代码。主包体积不能超过2M。
    分包:用户访问分包内的页面,只会下载对应分包内的代码,别的分包不会被下载。


    阅读全文