-
使用URL和URLSearchParams对象可安全高效地解析、构建和操作URL。通过newURL()可解析完整URL的各部分,如origin、host、pathname、search等,并支持以基础URL创建新地址;URLSearchParams用于处理查询参数,提供get、set、has、append等方法,避免手动拼接错误;浏览器中可通过window.location获取或跳转页面,Node.js中可用require('url')模块实现跨平台复用;需注意使用encodeURIComponent编码
-
rel="apple-touch-icon"是iOSSafari识别的专用图标链接标签,用于网站添加到主屏时显示自定义PNG图标;必须置于head中,使用绝对或根相对路径,尺寸严格正方形且Content-Type为image/png。
-
CSS的border-bottom-width不支持transition动画,因其不可插值;推荐用transform:scaleX()或width配合伪元素实现底部横线伸缩效果,优先选性能更好的transform方案。
-
准确捕获QuotaExceededError的唯一可靠方式是用try-catch包裹每次setItem操作,因浏览器仅在执行瞬间抛出该异常,且各浏览器错误类型、name和code存在差异,需封装兼容性判定函数并区分场景做降级处理。
-
用CSS自定义属性映射状态颜色的正确做法是:先通过属性选择器(如[data-state="error"])声明--state-color等变量,再在通用规则中用var(--state-color)消费,实现状态与样式的解耦和集中维护。
-
SVG内联图标fill不生效,主因是SVG自带fill属性优先级高于CSS;解决方法为删除原fill或改用fill="currentColor",再通过CSS变量(如--icon-color)或color属性统一控制颜色。
-
background-size:cover在手机上总切掉人脸,因其只保证“填满”容器而不保证“内容可见”,等比缩放时短边撑满、长边溢出,而iPhone14Pro(19.5:9)与常见图片(16:9或4:3)宽高比差异大,竖屏必裁顶部/底部,横屏则可能左右被砍。
-
CommonJS模块在Node.js中同步加载,即阻塞式文件读取与立即执行,虽提升调试直观性但导致冷启动慢、缓存失效风险及循环依赖隐患;可通过延迟加载、合并小模块、预加载等优化规避瓶颈。
-
真正隐藏又可读应使用.sr-only类:绝对定位+1px宽高+负边距+溢出隐藏+clip/clip-path+white-space:nowrap;禁用display:none、visibility:hidden、hidden属性。
-
本文详解为何直接向数组推送Object.keys()后调用.sort()无法实现排序,揭示JavaScript数组嵌套与原地排序机制的关键差异,并提供简洁、高效、符合最佳实践的对象键名排序方案。
-
HTML5中清除浮动影响的五种方法:一、clear:both插入空元素;二、触发BFC(如overflow:hidden或display:flow-root);三、伪元素clearfix方案;四、Flexbox替代浮动;五、CSSGrid布局。
-
掌握WebGL需理解:1.渲染管线包括顶点着色器、图元装配、光栅化、片元着色器和逐片元操作;2.使用GLSLES编写着色器,管理attribute、uniform和varying变量;3.通过VBO上传顶点数据并配置属性指针;4.利用模型、视图、投影矩阵进行坐标变换;5.加载纹理并设置采样参数;6.管理状态如启用深度测试、清屏及绘制调用。
-
WebUSB和WebBluetooth必须经用户显式授权且仅限安全上下文(HTTPS/localhost);WebUSB需满足协议、触发方式、设备过滤三条件,WebBluetooth依赖系统蓝牙开启、权限、设备可见性及正确过滤。
-
ShadowDOM是WebComponents的核心技术,用于实现DOM封装与样式隔离。通过attachShadow()方法可在元素内部创建独立的DOM环境,其结构和样式对外不可见且互不影响。支持open和closed两种模式,分别控制外部是否可访问ShadowRoot。具备样式隔离、结构隐藏和事件重定向特性,确保组件内聚性。利用:host和::slotted()可实现宿主与插槽的样式控制,CSS变量支持穿透传递。广泛应用于自定义UI组件、第三方嵌入工具及设计系统中,结合CustomElements构建高
-
Vue组件中emit不捕获原生DOM事件,子组件需监听DOM事件后调用emit抛出语义化业务事件;父组件应监听业务事件而非DOM事件,避免传递原生event对象、滥用.native修饰符,并采用kebab-case命名。