-
calc()是CSS函数,必须写在CSS声明中(如style属性或样式表),且加减号前后必须有空格;不能用于HTML属性,乘除法无空格要求但单位规则更严,嵌套实为括号,推荐用自定义属性拆分复杂计算。
-
纯HTML+CSS无法实现可交互音乐卡片,必须使用<audio>元素并配合JavaScript控制播放、进度、状态等;<audio>是HTML5唯一标准方案,支持多格式,需设src或<source>,preload="metadata"优化体验,自定义UI须隐藏原生控件并用JS绑定事件与DOM操作。
-
本文详解如何通过合理设置定位与CSS变换,使子元素(如.inner-inner-circle)在父容器内平稳旋转而不溢出,重点解决transform:translateY()导致脱离父级边界的问题。
-
防抖和节流在JavaScript中用于性能优化。防抖适用于用户停止操作后执行的场景,如搜索框输入;节流适用于定期执行的场景,如滚动事件处理。实现防抖函数:1.使用setTimeout延迟执行,2.清除之前的定时器,3.返回新函数。实现节流函数:1.使用标志控制执行,2.设置定时器重置标志,3.返回新函数。
-
<s>标签专用于标记曾准确但现已失效的内容,如过期价格、停用功能名、废止条款;不支持cite/datetime属性,不可与嵌套混用,且需配合CSS增强可访问性。
-
for-await-of用于按序消费异步迭代器,自动await每次next()返回的Promise;需对象实现[Symbol.asyncIterator](),如asyncfunction*、ReadableStream;不适用于高并发场景。
-
子菜单飘到页面左上角是因为未给父<li>设position:relative,导致absolute子菜单向上回溯至<body>定位;每级可展开<li>都须显式设relative,避免overflow:hidden裁剪,并采用递进式定位策略解决多层打架问题。
-
JavaScript是浏览器唯一原生支持的编程语言,所有前端交互、DOM操作、网络请求均依赖它;React/Vue等框架也运行于JS引擎之上,基础语法如let/const、箭头函数、解构赋值、模板字符串、for...of必须熟练掌握。
-
Reflect是ES6引入的内置对象,提供统一函数式接口集中管理JavaScript底层操作,与Proxy配合可实现元编程。它将原本分散的操作(如属性读写、函数调用)规范化为静态方法,如Reflect.get()、Reflect.set()、Reflect.has()等,均返回布尔值以提升操作可靠性,并支持receiver参数确保this正确绑定。相比传统命令式写法,Reflect更利于错误处理、逻辑扩展和代理透传,是实现响应式系统(如Vue3)的基础工具。
-
应先验证前缀存在性,再分离并截取正文,最后拼接;中文/emoji需注意UTF-16码元长度与显示宽度差异,后台用length,前端展示可选Intl.Segmenter或Array.from。
-
Number.isFinite不进行类型转换,仅当参数为数字类型且有限时返回true;对字符串、null、undefined等非数字类型及Infinity、NaN均返回false,因此需先用typeof检查类型再校验有限性。
-
闭包、事件监听器、定时器、全局变量和缓存管理不当是JavaScript内存泄漏的主要原因,需通过ChromeDevTools分析堆快照、监控分配时间线并结合代码审查与自动化工具进行排查和预防。
-
<li>必须嵌套在<ul>或<ol>内,孤立使用会导致结构错乱、CSS失效、无障碍问题;嵌套层级建议≤3层;list-style-type仅对display:list-item生效;废弃value/type属性,改用CSS或HTML5属性控制。
-
子元素浮动导致父容器高度塌陷,可通过clearfix类或overflow:hidden解决;推荐使用clearfix::after添加清浮动,避免溢出问题,而overflow:hidden触发BFC但可能裁剪内容。
-
contenteditable="true"不能直接使用,因其存在blur事件不可靠、光标默认在开头、粘贴富文本引发XSS、回车插入div而非br等硬伤;应改用dblclick动态插入input并做好焦点管理、XSS过滤与跨端兼容。