-
模块模式通过闭包实现子应用JS作用域隔离,需配合沙箱、DOM/CSS隔离及规范卸载机制才能有效防止微前端全局污染。
-
JavaScript模块化主流规范有CommonJS和ES6Module两种广泛落地,前者用于Node.js默认环境,后者获现代浏览器及新版Node原生支持;AMD/CMD已基本淘汰。
-
::first-letter伪类可实现首字下沉,需作用于块级元素且首字符为可见符号;常用float、font-size、line-height等属性控制效果,兼容现代浏览器,中文同样适用。
-
Webpack是一个静态模块打包器,从入口文件递归解析import/require等模块依赖,输出浏览器可运行的bundle;需通过loader(如css-loader、style-loader)和plugin扩展能力,不直接编译或压缩资源。
-
JavaScript需要Proxy,是因为它提供了唯一原生、细粒度、可编程的方式拦截和自定义对象基本操作;而Object.defineProperty仅能静态劫持已存在属性,无法捕获新增/删除属性、in操作、数组索引访问等。
-
HTML跨浏览器适配靠三件确定性动作:DOCTYPE顶格声明、normalize.css统一默认样式、用特性检测而非UA判断JS能力;漏掉任何一件,IE或旧Safari中CSS和JS均可能失效。
-
纯CSS可实现3D文字效果:用text-shadow多层偏移模拟纵深(兼容性好、轻量),或用transform-style:preserve-3d+transform实现真3D分层(需字符包裹span、父容器设perspective和preserve-3d);字体选择、抗锯齿设置及设备适配至关重要。
-
Object.isFrozen不能判定“全局单例是否处于只读安全期”,它仅检测对象是否浅层冻结(不可扩展、属性不可配置且不可写),不感知初始化完成、运行时锁、并发安全或深嵌套可变性。
-
直接运行vite即可启动HTML开发服务器,无需配置、框架或JS模块,只要根目录有index.html;常见错误包括未安装vite依赖、index.html位置或命名错误、误用vitepreview替代开发服务器,路径引用须以index.html所在目录为基准。
-
scroll-timeline需滚动容器、时间轴定义、动画绑定三者配合;Chrome/Edge115+原生支持,Firefox需开启flag且受限,Safari当前完全不支持。
-
首选CodeMirror或MonacoEditor构建在线代码编辑器,引入对应语言mode文件实现语法高亮,通过theme配置更换主题,调用getValue()获取代码并结合事件监听实现保存与交互功能。
-
Number.EPSILON是JavaScript中1与大于1的最小可表示数之差,约2.220446049250313e-16,用于浮点数安全比较;它不是通用误差容限,需配合Math.abs(a-b)和量级基准(如Math.max(Math.abs(a),Math.abs(b)))使用。
-
<p>使用prefers-color-scheme媒体查询结合自定义属性可稳定实现亮暗色自动切换,通过定义:root变量并配合oklch()颜色空间,在不同主题下动态调整文本与背景色;利用color-mix()函数可在现代浏览器中混合颜色,实现渐进式背景适配;借助相对颜色语法如oklch(fromvar(--bg)calc(l*0.8)ch)能基于背景色生成协调文字色,虽支持有限但代表未来方向;综合运用这些方法可模拟light-dark()效果,提升视觉一致性。</p>
-
transition-delay不生效通常因CSS覆盖、状态未变化或写法错误;须在初始状态定义完整transition,避免仅在hover中设置delay,且确保属性可过渡、值发生改变。
-
overflow-wrap:break-word没效果的根本原因是被其他样式或布局机制压制:white-space:nowrap会直接禁用换行;flex子项未设min-width:0导致无法收缩;容器缺少width/max-width使浏览器无断行依据;table-cell或inline-block等特殊显示模式也限制其生效。