-
Tooltip组件通过data-tooltip属性为元素添加提示信息,使用JavaScript监听鼠标事件并动态创建、定位提示框。核心逻辑包括:利用getBoundingClientRect计算位置,确保提示框不越界,并通过append/remove控制显示与隐藏。支持多种元素且无需额外DOM嵌套,可扩展自定义位置、动画和富文本功能,轻量易集成。
-
JavaScript自定义事件通信核心是CustomEvent+dispatchEvent+addEventListener,推荐封装事件总线(Map存储、支持on/once/off/emit),组件销毁时需解绑防泄漏;跨层级优先用props/context/store,仅插件或微前端等解耦场景用事件;命名加前缀、检查元素存在、记录source/timestamp提升健壮性。
-
老项目迁移新CSS工具难易取决于样式耦合度、团队理解深度和系统性路径;需处理类名强绑定、构建流程适配及第三方组件兼容问题,并排查隐性依赖。
-
图标不显示的主因是iconfontCSS或字体文件加载失败、路径错误、跨域拦截、类名/Unicode不匹配或CSS覆盖。需依次检查:CSS是否200加载、@font-face路径是否正确、字体文件是否可访问且无CORS问题、HTML中class名或Unicode是否与CSS定义一致、基础样式(font-family/display/content)是否缺失或被覆盖。
-
:not选择器可排除特定元素并结合组合选择器实现精细样式控制,如div>p:not(.alert)、label+input:not([type="submit"])等,适用于按钮状态、导航链接、表单字段等场景,提升代码可维护性;现代浏览器支持良好,建议避免复杂嵌套以优化性能。
-
答案:手写符合Promises/A+规范的Promise需实现状态机、then链式调用与resolvePromise递归解析;包含pending/fulfilled/rejected三种状态,通过resolve/reject函数改变状态,then方法返回新Promise并注册回调,利用queueMicrotask确保异步执行,resolvePromise处理返回值为Promise或thenable的情况,防止循环引用,同时实现catch、finally、resolve、reject等辅助方法。
-
答案:设计JavaScriptRESTfulAPI需遵循HTTP方法语义、使用名词复数命名资源、返回标准状态码、统一响应结构、支持分页过滤排序并版本化。具体为:1.用GET/POST/PUT/PATCH/DELETE操作资源;2.路径用复数名词如/users,避免动词;3.正确返回200、201、400、404等状态码;4.响应体采用{success,data,message}格式;5.列表支持?page=&limit=&sort=等参数并返回分页信息;6.URL中包含版本号如/v1/确保兼容升级。
-
Node.js通过cluster模块实现多进程并发,主进程管理并分发连接,各工作进程独立运行并共享端口,充分利用多核CPU提升性能。
-
伪元素默认为inline,不支持宽高及上下margin,需设display:block或inline-block才生效;content属性必不可少;定位时需配合position且父元素设relative;还需排查overflow、样式覆盖及透明度干扰。
-
HTML5是网页开发必备核心技术,需系统学习五方面:一、语义化文档结构;二、增强型表单功能;三、原生音视频嵌入;四、DOM操作与事件处理;五、Canvas图形绘制。
-
使用横向滚动容器、媒体查询调整布局、转换为卡片式布局及CSS显示属性控制是实现响应式表格的关键方法,确保小屏下内容清晰可读。
-
async函数中维护缓存一致性的核心策略包括:1.理解异步并发特性,避免因交错执行导致的数据不一致;2.采用写穿透、写回或缓存失效等策略,根据一致性需求选择合适方案;3.引入版本控制或乐观锁,防止并发更新冲突;4.使用消息队列或事件总线解耦数据变更与缓存更新;5.结合分布式锁确保关键操作的原子性。async函数因并发性和状态不可预测性使缓存一致性更复杂,需通过上述策略在性能、一致性和复杂性间取得平衡。
-
图文混排结构不清晰的核心在于语义与布局缺乏分层,应通过列区域拆分内容层级,用语义化容器(如<section><aside><article>)明确区块边界,再以CSSGrid/Flex理顺内部图文关系,并统一间距、对齐与视觉锚点。
-
使用grid-auto-flow:row可实现按钮自动按行排列,结合grid-template-columns和minmax()能创建响应式多行按钮布局,适配不同屏幕尺寸。
-
关键在于用带透明度的linear-gradient叠加半透色而非纯色,如rgba(0,0,0,0.4),透明度宜选0.2–0.6;可依图文位置设方向渐变,配合background-blend-mode(如multiply)及background-size:cover等确保融合自然。