string 和 String 到底有什么区别? 写 JS 代码的人,大概率都干过这两件事: js: let a = "hello"; let b = new String("hello"); 一个用小写 string,一个用大写 String,看起... TypeScript前端进阶 1周前02530
TypeScript 的 as 为什么不能乱用? 如果你写过一段时间 TypeScript,大概率遇到过这样的场景:类型报错了,改不明白,最后甩一个 as any 或者 as SomeType 上去,红线消失,代码跑起来,收工。 这个操作太常见了,常... TypeScript前端进阶# TypeScript# TypeScript学习# TypeScript教程 1周前01300
TypeScript 中 type 和 value 为什么是两个世界? 写 TypeScript 的时候,你大概率遇到过这两条报错: 'Foo' only refers to a type, but is being used as a value here. 'foo... TypeScript前端进阶# TypeScript# Value 1周前01140
用集合论真正理解 TypeScript 类型 学 TypeScript 的时候,大部分人是这么学联合类型和交叉类型的: | 表示"或",& 表示"并且把两边的属性合并在一起"。 这套说法背下来能应付日常写代码,但一旦碰到稍微复杂点的场景... TypeScript前端进阶# TypeScript# TypeScript 类型 1周前01150
VS Code 才是学习 TypeScript 最好的老师? 很多人学 TypeScript 的路径是这样的:先啃一遍官方文档,把 interface、type、泛型这些概念的定义抄一遍,然后打开编辑器开始写代码,结果写两行就卡住,回头再翻文档,来回好几趟,效率... TypeScript前端进阶# TypeScript# VS Code 1周前01370
一次握手,多次使用——连接复用是怎么回事 先回顾一下 前面,我们在《Web 性能优化第一课:真正影响速度的是延迟》讲到,打开一个网页往往要经历几十上百次"请求-响应"的往返,而每一次往返都要付出延迟的时间成本。 这篇文章我们要讲的"连接复用... 前端进阶性能优化# 前端性能优化 1周前01360
Web 性能优化第一课:真正影响速度的是延迟 一个常见的误解 一提到"网页慢",大部分人的第一反应是:是不是我家宽带不够快?要不要升级成千兆宽带? 这个反应特别正常,但很可能是走错了方向。 想象一下这个场景:你在网上下单买东西,包裹要从北京发到上... 前端进阶性能优化# web性能优化 1周前01300
浏览器缓存和 CDN 缓存到底有什么区别? 做前端的同学基本都听过这两个词:浏览器缓存、CDN 缓存。面试也爱问,平时排查线上问题(比如"我明明发布了新版本,为什么用户还是看到旧页面")也经常会撞上它们。 但很多人对这两者的理解停留在"反正都是... HTTP前端进阶 1周前01240
交换机和路由器有什么区别? 家里装宽带的时候,师傅可能会提到"路由器";公司机房里,你可能见过一排一排的"交换机"。这两个设备长得都差不多——一堆网线插口的黑盒子,很多人也就顺理成章地把它们当成同一种东西。 但这两者的分工其实完... HTTP前端进阶# 交换机# 网络安全# 路由器 1周前01910
IP 地址和 MAC 地址分别有什么作用? 学网络的时候,IP 地址和 MAC 地址几乎是同时出现的两个概念,很多人分不清它们到底谁管什么事,甚至觉得"是不是有一个就够了,为什么要搞两套地址"。 这篇文章就来把这两个地址的分工说明白。 先看一个... HTTP前端进阶# HTTP# HTTP协议# IP 地址 1周前01420