-
DOMPurify是JavaScript库,需调用sanitize()净化HTML字符串后再渲染;正则过滤不可靠,它基于真实DOM白名单解析;生产环境须显式配置ALLOWED_TAGS/ATTR并限制URI协议,且前后端均需净化。
-
JavaScript操作CSS样式有两条核心路径:一是直接修改元素的style属性(内联样式),适用于一次性、条件性强的变更,但难维护;二是通过classList切换预设CSS类,推荐用于主题、状态和动画触发,更可控易调试;此外,需用getComputedStyle()读取真实渲染样式,CSS自定义属性则提供灵活的JS-CSS桥梁。
-
浏览器只渲染第一段是因为多个linear-gradient()并列写入background会层叠覆盖而非合并;正确做法是用$stops...参数展开语法在单个函数内动态生成color-stop序列。
-
属性描述符本身不能直接实现微任务队列水位控制,需在set中嵌入Promise、queueMicrotask与状态管理逻辑;结合Proxy可拦截push等操作实现动态水位判断;水位应综合消息大小、网络状态等业务因素动态调整,并设微任务硬上限防事件循环饥饿。
-
JavaScript通过WebXRAPI与Three.js可在浏览器中创建免安装VR体验;需HTTPS、启用renderer.xr、用setAnimationLoop、添加空间音频与交互,并优化性能以保障72/90fps。
-
window.print()是不可定制的系统级打印触发器,仅在用户交互中有效,无法控制打印样式、跨iframe打印需聚焦,SPA中须确保DOM渲染完成,移动端不支持。
-
最快方式是直接修改element.style,但仅影响内联样式;彻底控制需操作class或插入<style>;推荐用classList管理预设类,动态样式可用CSS变量或insertRule。
-
实现HTML一键复制的核心机制是使用JavaScript操作剪贴板,现代推荐方法为navigator.clipboard.writeText(),兼容性方案则使用document.execCommand('copy');2.navigator.clipboard.writeText()基于Promise、异步执行、更安全且符合现代标准,但需在HTTPS环境下由用户手势触发;3.document.execCommand('copy')虽兼容老旧浏览器,但已被废弃,需创建临时元素并选中内容,操作复杂且存在安全
-
WeakMap和WeakSet因弱引用特性可有效避免内存泄漏,适合私有数据存储与对象状态追踪,如关联DOM元素状态或标记已访问对象,其条目随对象回收自动清除,且不支持遍历以保障内存管理机制。
-
Object.create(null)创建的对象原型为null,不继承任何内置方法,比{}更纯净;{}等价于Object.create(Object.prototype),可调用toString等方法,而Object.create(null)调用会报错,适用于哈希映射、配置容器等需完全可控的场景。
-
video元素不能直接transitionopacity,因其会强制退出GPU合成层,导致解码中断、黑屏、音画不同步;必须用双实例+visibility+opacity分层控制,并确保loadeddata触发、帧同步及移动端兼容处理。
-
可通过PerformanceAPI捕获首帧与LCP时机,结合交互延迟监测(>100ms)和超时兜底(FCP>1800ms/LCP>2500ms/2.5s无LCP),主动降级非关键资源、调整预加载策略并内联关键内容,全程可监控可回滚。
-
图片不显示的四大原因:路径错误(相对HTML文件)、img标签不规范(未自闭合或缺alt)、CSS隐藏(如overflow:hidden或vertical-align问题)、格式兼容性差(如WebP不支持)。
-
JavaScript执行前先词法分析生成tokens,再语法分析构建AST,V8引擎通过Ignition解释执行字节码,TurboFan对热点代码JIT编译为机器码,预解析实现var和function声明提升,了解该流程有助于优化代码性能与理解执行机制。
-
最可靠方案是用JavaScript遍历tr和td,结合textContent与includes()模糊匹配,需控制行数在2000以内;超量时应改用数据驱动模式。