-
JavaScript推送通知依赖ServiceWorker,需HTTPS环境与用户授权;先调用Notification.requestPermission()获权,再注册sw.js;激活后通过pushManager.subscribe()获取订阅信息并存至后端;ServiceWorker监听push事件显示通知;后端用web-push库和VAPID签名发送加密推送。
-
使用:checked与+结合可实现表单控件选中后样式化后续元素;2.常用于自定义复选框、展开内容、开关效果;3.需确保目标为直接相邻兄弟,否则可用~替代;4.适用于轻量交互,复杂逻辑仍需JavaScript。
-
答案:构建JavaScriptUI组件库需明确跨框架支持、主题定制、无障碍及体积控制;采用模块化结构,清晰目录与简洁API;通过Rollup/Vite打包,TypeScript支持,Jest测试,Storybook文档及semantic-release发布,提升可维护性与开发者体验。
-
外观模式是通过创建高层接口简化复杂系统调用的设计模式。它封装多个子系统操作,如将事件绑定、数据加载和DOM渲染整合为一个初始化方法,使客户端无需了解内部细节,仅通过统一接口(如pageInitFacade.init())即可完成调用,从而降低使用复杂度、实现解耦并提升可维护性,常用于浏览器兼容处理、多API组合调用等场景。
-
TV浏览器HTML5加载慢的根本原因是硬件、网络和渲染三重受限,需针对性优化:升级CDN支持Range请求、延迟加载视频、精简JS执行、内联关键CSS及压缩poster图。
-
原型链是JavaScript中对象查找属性和方法时真实执行的路径,由__proto__与prototype配合构成,class只是其语法糖。
-
JavaScript对象合并需据嵌套情况选浅拷贝或深拷贝:浅拷贝如Object.assign()、展开运算符仅复制第一层,引用类型共享内存;深拷贝如structuredClone()、JSON序列化或lodash.cloneDeep()递归复制全部层级,确保完全独立。
-
HTML4中rel合法值极少且仅用于<link>,仅stylesheet和shortcuticon被广泛支持;HTML5大幅扩展rel语义,新增preload、prefetch、preconnect、icon、manifest等值以支持现代Web功能,并标准化nofollow、noopener、noreferrer等行为,但需注意浏览器兼容性及crossorigin等配套属性。
-
使用fr单位和minmax()函数可统一按钮尺寸:通过grid-template-columns:repeat(auto-fit,minmax(120px,1fr))确保每列在120px最小宽与等比伸缩间平衡,结合width:100%、固定padding和box-sizing:border-box的按钮样式,使按钮在不同屏幕下保持一致外观,实现响应式布局中的尺寸协调。
-
浮动元素在宽度缩小时会“掉行”,因其脱离文档流且不感知容器变化,容器变窄时无法并排则被挤至下一行;需在媒体查询中显式设float:none并清除浮动才能避免布局崩塌。
-
JavaScript函数是可复用代码块,具有一等公民特性;定义方式有函数声明(提升)、函数表达式(不提升)和箭头函数(无this、不可构造);调用需用()传参,支持IIFE、默认参数与剩余参数。
-
JavaScript通过ClipboardAPI操作剪贴板,需用户触发且页面在安全上下文中运行;2.使用navigator.clipboard.writeText()写入文本,readText()读取文本,均返回Promise并需处理权限与异常。
-
浮动错位主因是父容器未触发BFC且box-sizing不匹配;box-sizing:border-box可防宽度溢出但需配合BFC或清除浮动;混用float与flex/grid会导致布局失控,推荐弃用float改用现代布局。
-
gap属性是解决按钮组间距问题最简洁现代的方案,需父容器设为flex或grid布局;它自动跳过隐藏项、避免外边距合并,兼容主流浏览器,旧版Safari需加-webkit-gap前缀。
-
图标不显示的主因是iconfontCSS或字体文件加载失败、路径错误、跨域拦截、类名/Unicode不匹配或CSS覆盖。需依次检查:CSS是否200加载、@font-face路径是否正确、字体文件是否可访问且无CORS问题、HTML中class名或Unicode是否与CSS定义一致、基础样式(font-family/display/content)是否缺失或被覆盖。