-
JavaScript桌面通知需先调用Notification.requestPermission()获取用户授权,仅在用户点击等交互后有效,权限状态分granted/denied/default;获准后方可通过newNotification()发送通知,且要求HTTPS(localhost除外)。
-
navigator可获取userAgent、platform、vendor、hardwareConcurrency、deviceMemory、maxTouchPoints等属性,其中platform和maxTouchPoints相对可靠;iOS判断需结合UA匹配与触控特征;UA已因减损策略不可信,推荐用运行时能力探测替代字符串解析。
-
使用position:fixed+transform是推荐的模态框居中方案,通过top:50%、left:50%和transform:translate(-50%,-50%)实现未知宽高下的精准居中,兼容性好且无需预先知道尺寸;另一种是position:absolute配合负margin,适用于已知宽高情况,需父容器相对定位并手动设置边距,维护性较差。建议搭配fixed定位的半透明遮罩层提升体验,合理设置z-index确保层级正确。
-
浅拷贝只复制第一层属性,嵌套引用值共享内存;深拷贝递归复制所有层级,完全独立。常见浅拷贝方法有展开运算符、Object.assign()、slice()/concat();JSON深拷贝有缺陷,手写需处理循环引用,生产推荐Lodash或structuredClone()。
-
JavaScript的多态基于动态绑定、原型继承和鸭子类型,运行时根据对象实际方法决定行为;支持方法重写、结构匹配调用及函数内联多态,无需编译时类型检查。
-
图片垂直居中需据容器类型选择方案:行内元素用line-height+vertical-align:middle;块级容器用flex布局align-items:center;混合场景可用inline-flex,避免line-height与flex混用。
-
使用position:fixed可将元素固定在页面顶部,需设置top:0、width:100%、z-index等属性;注意避免父元素含transform/filter导致失效,iOS软键盘引发偏移可用sticky替代或JS修复,确保层级不被遮挡。
-
:focus伪类可实现输入框高亮,通过自定义border-color和box-shadow并配合transition,既能提升表单可用性,又能增强视觉反馈,但需确保去除outline后保留其他可视提示以保障可访问性。
-
可通过CSS的box-shadow属性为HTML元素添加阴影实现立体感,配合transform、伪元素、渐变遮罩及深色模式适配可增强真实感,同时需避免overflow隐藏、透明背景等导致阴影失效的问题。
-
使用CSS的vertical-align属性实现HTML表格中文本垂直居中对齐。具体做法是为表格单元格(<td>或<th>)设置vertical-align:middle;样式,确保内容在单元格内垂直居中显示;2.推荐通过内部或外部样式表定义CSS规则,以提升可维护性和代码清晰度,避免使用已被废弃的HTML属性如align和valign;3.对于复杂布局需求,可以结合text-align控制水平对齐、flex布局管理多元素排列、padding调整内容间距,以及white-space
-
使用gap与flex属性可高效实现响应式工具栏布局。首先将容器设为display:flex并设置gap,如.toolbar{display:flex;gap:8px;},使按钮间保持统一间距且不影响容器边缘;结合flex:1让特定元素(如搜索框)占满剩余空间,flex:none保持按钮固有尺寸;垂直布局时使用flex-direction:column,gap仍生效,确保清晰结构;相比margin,gap避免外边距合并问题,提升布局整洁性与灵活性,现代浏览器支持良好,仅需注意IE不兼容。
-
答案是使用CSS的background-image配合媒体查询和现代图片格式来适配高分辨率屏幕。通过为不同设备像素比提供对应图片,如使用@media查询检测-device-pixel-ratio或使用image-set()函数,可让Retina屏加载2x或3x图,保证清晰度,同时用WebP、AVIF等高效格式压缩图片,在保证视觉质量前提下减少文件大小,兼顾加载性能与显示效果。
-
在HTML5中应直接监听鼠标事件并从event对象获取clientX/clientY,其值相对于视口左上角且不随滚动变化;需换算为元素坐标时用getBoundingClientRect(),文档坐标则用pageX/pageY;touch事件须从touches[0]取值。
-
用Tailwind更优,因其支持PurgeCSS精准剔除未用样式;Bootstrap需手动引入SCSS子模块或第三方插件压缩;Bulma/Foundation因嵌套选择器、无ESM、不可按需提取而拖慢首屏;CSS-in-JS有运行时开销,应慎用于高频交互场景。
-
ReactHooks与ContextAPI进阶用法包括:1.useState处理复杂数据时保持不可变性,useEffect精准管理依赖和清理副作用;2.自定义Hook如useLocalStorage提升逻辑复用;3.ContextAPI结合useMemo优化深层传参性能;4.useReducer管理复杂状态流,配合Context实现轻量全局状态。合理组合可构建健壮易维护的中小型应用架构。