前端技术文章
-
JavaScript中复制文本到剪贴板最现代且推荐的方式是使用navigator.clipboard.writeText(),它基于Promise、异步执行、不阻塞主线程,且需在用户手势触发的上下文中调用以满足安全策略;2.为兼容老旧浏览器可降级使用document.execCommand('copy'),但该方法已被弃用,需创建临时textarea元素并手动选中内容,操作繁琐且存在兼容性和安全性问题;3.复制功能失灵的主要原因包括:未在用户操作事件中调用(如点击)、非安全上下文(HTTP环境)、浏览器兼448 收藏 -
transition不支持循环,它仅在属性值变化时触发一次单向过渡;实现循环动效必须使用@keyframes+animation,并通过animation-iteration-count:infinite、对称关键帧和ease-in-out等参数模拟过渡感。448 收藏 -
em标签用于语义强调而非视觉斜体,核心判断标准是删去后句子潜台词或责任归属是否改变;正确场景为口语重音区分含义,错误场景为船名、学名等纯视觉斜体。448 收藏 -
Promise构造函数是同步执行的,其executor回调在newPromise时立即运行,resolve/reject调用也同步改变状态,但then回调需等待微任务队列。448 收藏 -
内存泄漏主因包括全局变量、闭包、事件监听未解绑等,通过ChromeDevTools分析堆快照与内存趋势,结合代码规范与资源清理可有效排查和预防。448 收藏 -
采用BEM命名法规范类名,按模块拆分CSS文件,使用scoped隔离样式,避免深层嵌套与全局污染,提升可维护性与性能。448 收藏 -
浏览器扩展API可通过注入内容脚本增强网页功能。1.内容脚本在特定时机(如document_idle)注入,可操作DOM;2.通过postMessage安全通信,避免环境冲突;3.可添加按钮、自动填表、高亮文本等;4.权限需最小化,用activeTab和明确host声明保障隐私。448 收藏 -
document.cookie读写需严格注意路径、域名、编码及HttpOnly限制;必须显式设置path=/和domain=.example.com以跨路径/子域共享,中文需encodeURIComponent编码,读取后须decodeURIComponent解码,且HttpOnlyCookie无法通过JS读取。448 收藏 -
闭包是模块模式实现真正私有的唯一机制,通过作用域隔离使变量无法被外部访问,所有接口函数都依赖闭包引用私有状态,ES6模块底层仍由闭包维护词法作用域。448 收藏 -
transition需同时声明opacity和transform并设相同时间,初始/目标状态显式定义,用class切换控制显示隐藏,避免display:none和JS直接改style,监听transitionend事件确保动画完成后再清理状态。448 收藏 -
优先选iframe嵌入第三方地图,因其开箱即用、兼容性好、无需密钥和JS初始化;需从官方“嵌入地图”页签获取代码,注意src格式、响应式写法及国内GFW下的fallback方案。448 收藏 -
响应式分片上传进度分为四层:本地分片索引层、当前分片流层、服务端确认层、合并状态层;交互反馈需真实、防抖、低延迟,通过非线性映射、中断恢复可视化、多文件队列联动及轻量级轮询同步实现一致性体验。448 收藏 -
应先验证前缀存在性,再分离并截取正文,最后拼接;中文/emoji需注意UTF-16码元长度与显示宽度差异,后台用length,前端展示可选Intl.Segmenter或Array.from。448 收藏 -
CSS变量可动态控制background-position,需在:root或选择器内声明带单位的变量,用var()调用并配合calc()计算,多背景图时须一一对应变量,注意兼容性与生命周期管理。448 收藏 -
<bgsound>标签已彻底失效,现代浏览器完全忽略它;它从未进入W3C标准,仅IE私有支持,HTML5中必须用<audio>替代并遵循自动播放策略。448 收藏