在 ES6 之前,JavaScript 的对象属性名只有一种类型:字符串。这在单人开发的小项目中看似没问题,但在大型项目或多人协作开发第三方库时,属性名冲突(Collision)简直是噩梦。

于是,ES6 带来了Symbol。它不仅仅是一个新类型,更是解决架构设计中"唯一性"问题的银弹。

- 阅读剩余部分 -

阅读全文 »

基于零宽字符(Zero Width Characters)的盲水印技术。学会这招,你也能给你的页面加上隐形追踪器。

什么是零宽字符?

在Unicode字符集中,有一类神奇的字符。它们存在,但不占用任何宽度,也不显示任何像素。简单说,它们是隐形的。

最常见的几个:

  • \u200b (Zero Width Space):零宽空格
  • \u200c (Zero Width Non-Joiner):零宽非连字符
  • \u200d (Zero Width Joiner):零宽连字符

- 阅读剩余部分 -

阅读全文 »

说到 WebSocket,很多人第一反应就是「又爱又恨」。爱的是它够快,恨的是出了问题压根没法看。Network 面板刷一次丢一次,想抓个包得把页面刷新到怀疑人生;后端说"消息发了",前端却一脸懵:"我咋没收到?"

现在,这块"黑布"终于被扯下来了—— WebSocket DevTools 正式上线——抓包、改包、断网、重放,一条龙搞定,Chrome 商店就能装,30 秒上手。

- 阅读剩余部分 -

阅读全文 »