-
深拷贝需递归复制所有层级并处理循环引用,JSON.parse(JSON.stringify())有类型限制,手写应使用WeakMap缓存,生产环境推荐Lodash的_.cloneDeep()。
-
JavaScript操作剪贴板主要使用异步的navigator.clipboardAPI,需在HTTPS/localhost安全上下文及用户手势(如click)中调用writeText()或readText(),旧版浏览器可降级使用document.execCommand('copy')。
-
最常见的play()报错是DOMException:Theelementhasnosupportedsources,因未加载有效音视频资源就调用;其次为Promise拒绝,因缺少用户手势触发;还有安卓WebView静默失败及WebAudio混用导致的音频异常。
-
答案:CSS中通过margin控制元素外间距,padding控制内间距,flex布局可用gap设置子元素间隔,并推荐使用box-sizing:border-box避免尺寸异常。
-
使用curl脚本测量本地服务器HTML/CSS加载时间,并通过Conky周期性显示。1.编写bash脚本调用curl获取time_total等指标;2.在~/.conkyrc中用${execi10~/scripts/load_time.sh}每10秒执行;3.可分离监控HTML与CSS文件耗时;4.脚本可添加条件判断优化输出,颜色控制建议置于Conky配置中。
-
使用:checked伪类结合兄弟选择器可实现无JS的交互效果,如内容展开、主题切换等。通过隐藏checkbox并利用~或+选择器控制后续兄弟元素的显示状态,常用于折叠面板、标签页切换等场景,关键在于HTML结构顺序与选择器的正确配合。
-
HTML5<video>标签需手动补全controls、preload="metadata"、poster属性,且MP4必须用H.264BaselineProfile和48kHzAAC编码;嵌第三方视频须用响应式iframe容器并添加allow属性。
-
内边距应遵循设计系统间距规范,优先使用12px、16px等规律值,分方向精细调整,配合border-box盒模型与DevTools实时验证,确保视觉节奏稳、准、匀。
-
首选CSS@keyframes实现轻量级动态背景,需用fixed定位全屏div并设z-index:-1;Canvas粒子用tsParticles库;SVG动画应内联并用<animateTransform>;须遵守减少运动、不遮文字、不阻塞首屏三大约束。
-
localStorage不能存敏感信息,仅适用于非敏感前端状态数据;使用setItem/getItem/removeItem操作字符串,对象需JSON序列化;存在XSS窃取、明文存储、无访问控制等安全风险。
-
首先确认浏览器支持硬件加速编码,通过VideoEncoder.isConfigSupported()检测配置兼容性并选择H.264等广泛支持的格式;接着创建VideoEncoder实例,设置hardwareAcceleration为'prefer-hardware'以优先启用硬件编码,同时配置输出回调处理编码后的chunk;然后将来自摄像头、canvas等源的图像数据封装成VideoFrame对象,按时间戳顺序输入编码器,并控制队列大小避免积压;最后在编码结束时调用flush()完成剩余帧编码并关闭编码器
-
JavaScript单元测试关键是选Vitest(新项目/Vite)或Jest(旧大型项目),注意文件命名、异步处理、mock隔离及CI环境配置。
-
:not()只接受简单选择器,排除多个类需链式书写;控制鼠标选中用user-select而非:not()或pointer-events,其值none/text/all/contain决定可选行为,且支持继承与子元素覆盖。
-
必须用JavaScript监听input事件配合正则与字符集检测实现分级提示,纯pattern无法动态反馈;提示需紧贴input下方用display:none控制显隐,前后端校验策略须一致且可配置。
-
快速构建HTML5应用有五种方法:一、用HTML5Boilerplate模板跳过基础搭建;二、用Vite等构建工具链实现自动化开发;三、集成Bootstrap等UI组件库减少样式与交互开发;四、借助CodePen等在线平台即时调试;五、封装WebComponents实现模块复用。