货都到了,海关却不放行
服务器把数据箱送到了门口,JavaScript 伸手去接,浏览器海关却“啪”地落下闸门:“来源不同,先看通关许可!”货都运回来了,怎么还算失败?
服务器把数据箱送到了门口,JavaScript 伸手去接,浏览器海关却“啪”地落下闸门:“来源不同,先看通关许可!”货都运回来了,怎么还算失败?
URL 抱着域名跑遍网络问路处,得到的回答却永远是“去问下一位”。正准备投诉全员踢皮球,一张真正的服务器地址突然从最后一扇窗口递了出来。
JavaScript 刚把窗户加宽一厘米,转头就问:“现在多宽?”布局工人只好重新量房。如此来回八次,卷尺终于弯成了蚊香:“要不您先问完,再动手?”
DOM 工地才搭到一半,一个普通脚本就抱着枕头躺上了轨道:“文件没到,谁也别想过去。”HTML 解析器当场摔掉扳手——这树爱谁搭谁搭!
定时器天还没亮就来排队,旁边的小门却“唰”地蹿出一个微任务:“我没插队,我走的是 VIP 通道。”队伍眼看越排越长,JavaScript 老大一口咖啡差点喷出来——Promise 什么时候还有这待遇了?
执行大厅刚换上一摞新盘子,递归函数就抱着盘子冲了进来:“再加一层!”盘子越堆越高,事件大厅在门外急得直拍门——最上面那只到底什么时候才能拿走?
函数早已执行结束,临时工作室却死活关不掉。清理员刚碰门把手,警报立刻响起:“该环境仍可访问,禁止清理!”到底哪把钥匙还没交回来?
对象从哪里找到自身没有的属性?`prototype`、`__proto__` 和 `constructor` 绕来绕去,究竟是谁指向谁?从一次取值开始,把原型链顺着内存关系拆开。
JavaScript 明明只有一条主线程,定时器、请求和点击事件为什么还能同时忙起来?宏任务与微任务又是怎么排队的?事件循环该登场了。
同一段定时器和 Promise 代码,放进浏览器与 Node.js,输出顺序为什么会变?六个阶段轮番接力,真正绕人的地方藏在 `poll` 和微任务的执行时机里。
HTML5 只是 HTML4 的升级版吗?语义化、通信、存储、DOM、BOM 甚至 CSS3 都被装进这个名字后,“H5”早已不只是一份标签规范。
HTML 是编程语言吗?浏览器访问 `.jsp`、`.php` 时,最后拿到的又是什么?从超文本与浏览器的诞生出发,重新看看 HTML 到底负责什么。