-
标签模板是JavaScript中模板字符串的高级用法,通过在模板字符串前添加一个函数名作为“标签”,将模板中的静态部分和动态插值分别传入该函数进行自定义处理。它允许开发者灵活控制字符串的拼接方式,常用于格式化输出、防止XSS、构建HTML或CSS片段等场景。其基本形式是定义一个函数(如myTag),接收两个参数:strings(模板中的静态文本部分)和values(动态插值的值),然后按需组合它们。例如,logColor函数可用于高亮控制台输出,safeHTML函数可自动转义HTML字符以防止XSS攻击,
-
width和height在flex容器中仍生效,但作为flex-basis的后备值;当flex-basis未设置或为auto时起作用,否则被忽略;min-width/min-height及box-sizing会影响最终尺寸计算。
-
str.at(-1)可优雅安全获取字符串末字符,支持负索引、空串返回undefined,语义清晰且比str[str.length-1]和str.slice(-1)更简洁可靠,现代浏览器及Node.js16.6+均已支持。
-
Vue.js的watch默认浅监听且不处理异步副作用;需设deep:true实现深度监听,结合防抖、AbortController和清理函数避免竞态与内存泄漏,并用flush控制触发时机。
-
在Nuxt3的服务端API(defineEventHandler)中,无法直接使用import()动态导入JSON文件(如import(filePath)),因ES模块要求路径为静态字符串;推荐改用Node.js原生fs.readFile或fs.promises.readFile安全读取并解析JSON。
-
h1到h6的语义层级由HTML文档大纲决定,而非CSS样式;必须严格按嵌套顺序递进使用,避免视觉与语义错位,单页应用中宜用section/article包裹独立h1,隐藏h1需用clip-path等可访问方式,内容须简洁唯一、不可为空或含未解析变量。
-
ApplicationCache(manifest)已全面废弃,导致白屏或加载失败;现代离线能力必须依赖ServiceWorker+CacheAPI,需正确实现install、fetch、activate三阶段逻辑,并注意作用域、HTML缓存风险及MIME干扰问题。
-
setTimeout只执行一次,适合防抖、延迟初始化等单次调度;setInterval重复执行但易导致时间不准、回调堆积、内存泄漏,需显式清除,精准轮询推荐用递归setTimeout实现。
-
font-variation-settings是控制可变字体轴值的底层属性,支持任意浮点值;而font-weight是语义化别名,仅映射预定义字重且会四舍五入。
-
Number.isSafeInteger仅校验单个值是否为安全整数,不拦截运算、不跟踪过程、不防止溢出,需手动对每步中间结果显式校验,且无法替代业务逻辑判断。
-
直接给<tr>设height基本无效,应通过<td>/<th>的height、line-height、vertical-align、padding及box-sizing联合控制行高,多行内容需用max-height或flex布局处理。
-
HTML表格通过table、tr、td、th标签构建,用于清晰展示数据。示例包含姓名、年龄、城市三列,使用border-collapse合并边框,提升可读性与语义化,便于SEO和辅助技术识别。
-
不能。structuredClone是同步深拷贝函数,不参与通信流程,仅预处理数据以提升postMessage克隆安全性与类型保真度;它无法替代postMessage的序列化和传输功能。
-
直接写CSS易致样式不一致,因命名、重置、单位等无统一规范;CSS框架通过集中定义变量与约束消费实现一致性,Tailwind适合精细控制,Bootstrap适合快速原型,自建原子类适配现有SCSS架构;老页面应双轨并行、渐进替换,并注意作用域、构建配置及团队协作规范。
-
齿轮动画需用steps()实现顿挫感而非linear匀速,选24步匹配常见齿数,配合SVG精确齿形、居中transform-origin和≥1.5s时长,才能呈现真实“咔哒”机械节奏。