-
MessageChannel是提供两个隔离MessagePort实例的双向通信机制,相比postMessage可避免消息队列竞争、支持零拷贝传输、实现端口专属与复用。
-
justify-content:space-between不铺满元素是因为它只分配主轴剩余空间,不改变子项自身宽度;需配合flex:1(等价于flex-grow:1,flex-shrink:1,flex-basis:0%)使子项等宽铺满,或改用CSSGrid实现更可靠的等分平铺。
-
答案:JavaScript元编程通过Proxy和Reflect实现对象行为的拦截与转发,广泛应用于响应式系统、ORM、AOP、数据校验等场景,同时需注意性能开销、调试难度和兼容性问题,并可结合装饰器、Symbol、AST操作等特性扩展能力。
-
Node.js中选择子进程方法需根据场景权衡:spawn适合长时间运行、大输出任务,安全性高;exec适用于简单命令,但有缓冲区限制和安全风险;execFile直接执行文件,更安全但仍有缓冲限制;fork专用于Node.js进程间通信,支持IPC消息传递。性能上spawn最优,安全性spawn和execFile优于exec;fork适合多进程架构。输入输出通过流处理,错误需监听error、close事件,生命周期可用kill、timeout管理,IPC通信应避免大数据传输并处理优雅关闭。
-
nth-last-child(n)的真实作用是匹配倒数第n个元素,而非统计子元素数量;它需结合其他伪类(如:nth-child、:only-child)通过位置特征间接推断数量范围,典型应用是纯CSS实现“3个以内横排、4个起网格”的响应式布局。
-
structuredClone()无法拷贝ImageBitmap,因其是不可序列化的原生图形资源句柄,不属于结构化克隆白名单类型,调用会抛出DataCloneError;替代方案包括转为ImageData中转、Transferable句柄移交或clone()复用。
-
<main>标签是页面唯一主要内容入口,每页仅能有一个且不可嵌套于其他分区元素内,用于保障可访问性与SEO;其内容须为当前视图独有、不可复用,禁止包含全局导航、页脚等复用组件。
-
原生details元素可直接实现语义化、无障碍折叠功能,无需手写JS:用<details><summary>标题</summary>内容</details>即可,支持键盘操作、自动aria状态,兼容主流浏览器(Chrome12+等),IE除外。
-
localStorage应只存token及过期时间戳,绝不存明文密码;需配合服务端验证实现安全自动登录,并在登出或token吊销时同步清除。
-
contain:layoutpaint是首选组合,因它同时封锁布局计算和绘制边界,使浏览器将容器内变化视为独立上下文,避免影响外部;但需容器尺寸稳定、子元素不越界且浏览器支持。
-
ins标签用于标记HTML文档中新增的文本,常与del标签配合展示修改痕迹;2.它通过默认下划线样式突出插入内容,适用于协作编辑、版本控制等需展示修改历史的场景;3.可使用cite和datetime属性提供插入文本的上下文信息;4.与mark标签的区别在于语义不同:ins表示文档修改中的新增内容,mark用于标记当前上下文中的重点内容;5.可通过CSS自定义ins标签的样式,如去除下划线、设置背景色和文本颜色,以符合设计需求。
-
用position:fixed实现右下角悬浮按钮的核心写法是直接设置position:fixed、right:20px、bottom:20px、z-index:1000,并避免父元素有transform/filter/perspective;常见失效原因是父级创建了新的containingblock;移动端需用env(safe-area-inset-bottom)适配。
-
微任务队列在宏任务结束后立即清空所有任务,包括过程中新加入的;常见来源有Promise回调、MutationObserver、queueMicrotask等,执行优先级高于宏任务但不触发渲染。
-
BEM变量名必须完整映射DOM结构层级:block→element→modifier三层语义,加命名空间前缀(如--ui-),声明在:root或[data-theme]下,禁用PurgeCSS误删,确保结构标识与值容器双重角色可控。
-
最稳妥结构是用语义化标签:<section>包裹整个面板,每条待办用<article>,标题与状态放<header>,操作区放<footer>,内容放<p>等语义元素。