string 和 String 到底有什么区别? 写 JS 代码的人,大概率都干过这两件事: js: let a = "hello"; let b = new String("hello"); 一个用小写 string,一个用大写 String,看起... TypeScript前端进阶 1周前02530
交换机和路由器有什么区别? 家里装宽带的时候,师傅可能会提到"路由器";公司机房里,你可能见过一排一排的"交换机"。这两个设备长得都差不多——一堆网线插口的黑盒子,很多人也就顺理成章地把它们当成同一种东西。 但这两者的分工其实完... HTTP前端进阶# 交换机# 网络安全# 路由器 1周前01910
为什么同一个对象 TypeScript 一会报错一会不报? 写 TypeScript 的时候,你有没有遇到过这种诡异的情况: 明明是同一个对象,同一个属性,上一行代码里用得好好的,下一行突然就报错了;或者两段看起来长得一模一样的代码,一段能过编译,另一段却直接... TypeScript# TypeScript# TypeScript学习# TypeScript教程 1周前11840
数据为什么要被切成一个个 Packet? 你在网上下载一个 1GB 的文件,或者看一场直播,背后传输的数据从来不是"整块"发过去的,而是被切成了成千上万个小包(Packet),一个一个送到你的设备上,再拼回原样。 很多人对这件事的第一反应是... HTTP前端进阶# HTTP# HTTP协议 1周前01550
IP 地址和 MAC 地址分别有什么作用? 学网络的时候,IP 地址和 MAC 地址几乎是同时出现的两个概念,很多人分不清它们到底谁管什么事,甚至觉得"是不是有一个就够了,为什么要搞两套地址"。 这篇文章就来把这两个地址的分工说明白。 先看一个... HTTP前端进阶# HTTP# HTTP协议# IP 地址 1周前01420
HTTP 为什么基于 TCP? 这个问题看似基础,但真要讲清楚,得先搞明白一件事:HTTP 本身其实什么都不管。它只负责定义"请求长什么样、响应长什么样",至于这些内容怎么从浏览器传到服务器、路上丢了怎么办、顺序乱了怎么办——这些脏... HTTP前端进阶# HTTP# HTTP协议 1周前01380
VS Code 才是学习 TypeScript 最好的老师? 很多人学 TypeScript 的路径是这样的:先啃一遍官方文档,把 interface、type、泛型这些概念的定义抄一遍,然后打开编辑器开始写代码,结果写两行就卡住,回头再翻文档,来回好几趟,效率... TypeScript前端进阶# TypeScript# VS Code 1周前01370
一次握手,多次使用——连接复用是怎么回事 先回顾一下 前面,我们在《Web 性能优化第一课:真正影响速度的是延迟》讲到,打开一个网页往往要经历几十上百次"请求-响应"的往返,而每一次往返都要付出延迟的时间成本。 这篇文章我们要讲的"连接复用... 前端进阶性能优化# 前端性能优化 1周前01360
TCP 三次握手跟网页速度有什么关系? 打开一个网页,你可能觉得"点一下就该出来了",但在这一瞬间背后,浏览器和服务器之间其实要先"打招呼",确认彼此都在线、都准备好了,才能开始真正传输数据。这个"打招呼"的过程,就是 TCP 三次握手。 ... HTTP前端进阶# HTTP# HTTP协议 1周前01350
TypeScript 的 as 为什么不能乱用? 如果你写过一段时间 TypeScript,大概率遇到过这样的场景:类型报错了,改不明白,最后甩一个 as any 或者 as SomeType 上去,红线消失,代码跑起来,收工。 这个操作太常见了,常... TypeScript前端进阶# TypeScript# TypeScript学习# TypeScript教程 1周前01300