-
缺一不可,漏掉stroke()就什么都看不见;因为moveTo()和lineTo()仅构建路径指令,不触发绘制,必须显式调用stroke()才真正描边显示。
-
new操作符的模拟需四步:1.用Object.create(constructor.prototype)创建空对象并绑定原型;2.用constructor.apply(obj,args)绑定this并执行构造函数;3.若构造函数返回对象或函数则返回它,否则返回新对象;4.整合为myNew函数。
-
WebP/AVIF比JPG更适合background-image,因其支持alpha通道、更优预测编码及HDR元数据,而JPG的DCT块编码和色度抽样易致线条/文字失真;应避免background-size:cover导致的插值失真,改用100%尺寸+position对齐,并禁用模糊滤镜。
-
推荐使用CSS设置文字样式,通过style属性或样式表定义font-family、font-size和color;2.可在标签内用style直接设置,或在style标签及外部文件中统一管理;3.避免使用已废弃的font标签。
-
aria-readonly仅向辅助技术传达只读语义,不改变交互行为;必须与原生readonly或事件拦截配合使用,否则会导致语义与实际行为错位。
-
阅读模式依赖语义化HTML结构而非CSS隐藏,正文须用<article>或<main>包裹且不嵌套在<nav><header><aside>中,需严格层级的<h1>-<h6>标题、带alt的<img>、含cite的<blockquote>及标准<ul><ol>列表。
-
关键不是看页面总内存,而是盯住fetch触发后、响应体开始解析前的内存增量;调用.text()等会一次性解码致内存暴涨,而用response.body.getReader()流式处理可将峰值稳定在5–10MB。
-
用IntersectionObserver实现滚动触发动画时间线最稳定:设threshold为[0,0.1]提前触发,配合transition而非animation实现进退双向动画,用data-position替代nth-child避免布局错位,移动端加rootMargin适配Safari惯性。
-
HTML本身无法动态生成页面,必须依赖JavaScript操作DOM或模板引擎(如Handlebars、Jinja2)及服务端语言;浏览器端需预编译与数据绑定,服务端需防XSS与路径遍历,零依赖方案可用template标签与DOMParser。
-
记事本编辑HTML文件必须用UTF-8编码并确保扩展名为.html。常见错误是保存为ANSI编码或index.html.txt,导致中文乱码、无法打开或浏览器不更新;务必用“另存为”,手动输入带引号的"index.html",并开启系统扩展名显示以确认。
-
Array.prototype.join()拼接字符串比反复+=更快,配合模板字符串预处理数据可提升性能、可读性与可维护性;应避免频繁DOM操作,一次性innerHTML插入,并做好XSS防护。
-
JavaScript测试必须覆盖关键路径,单元测试用Jest隔离验证函数/组件,集成测试依场景选Cypress或Vitest,重点保障跨模块数据流与副作用,函数和分支覆盖率比行覆盖率更能暴露风险。
-
必须设table-layout:fixed才能控列宽,配合width:100%和显式列宽(如<thstyle="width:25%">),再结合data-label卡片模式或容器水平滚动,兼顾响应式与可访问性。
-
shift()方法用于移除数组第一个元素并返回该元素,原数组长度减1;若数组为空则返回undefined,且该方法会直接修改原数组。
-
HTML是定义网页内容结构与语义的标记语言规范,非架构标准;DOCTYPE声明决定解析模式,head与body为强制逻辑分区,标签嵌套、属性书写等细节直接影响语义、可访问性与渲染一致性。