-
闭包是模块模式实现真正私有的唯一机制,通过作用域隔离使变量无法被外部访问,所有接口函数都依赖闭包引用私有状态,ES6模块底层仍由闭包维护词法作用域。448 收藏 -
document.cookie读写需严格注意路径、域名、编码及HttpOnly限制;必须显式设置path=/和domain=.example.com以跨路径/子域共享,中文需encodeURIComponent编码,读取后须decodeURIComponent解码,且HttpOnlyCookie无法通过JS读取。448 收藏 -
浏览器扩展API可通过注入内容脚本增强网页功能。1.内容脚本在特定时机(如document_idle)注入,可操作DOM;2.通过postMessage安全通信,避免环境冲突;3.可添加按钮、自动填表、高亮文本等;4.权限需最小化,用activeTab和明确host声明保障隐私。448 收藏 -
采用BEM命名法规范类名,按模块拆分CSS文件,使用scoped隔离样式,避免深层嵌套与全局污染,提升可维护性与性能。448 收藏 -
内存泄漏主因包括全局变量、闭包、事件监听未解绑等,通过ChromeDevTools分析堆快照与内存趋势,结合代码规范与资源清理可有效排查和预防。448 收藏 -
Promise构造函数是同步执行的,其executor回调在newPromise时立即运行,resolve/reject调用也同步改变状态,但then回调需等待微任务队列。448 收藏 -
em标签用于语义强调而非视觉斜体,核心判断标准是删去后句子潜台词或责任归属是否改变;正确场景为口语重音区分含义,错误场景为船名、学名等纯视觉斜体。448 收藏 -
transition不支持循环,它仅在属性值变化时触发一次单向过渡;实现循环动效必须使用@keyframes+animation,并通过animation-iteration-count:infinite、对称关键帧和ease-in-out等参数模拟过渡感。448 收藏 -
正则表达式可初筛Hardcoded字符串,但需结合上下文判断真伪;推荐AST解析或专业工具(如Semgrep、SonarQube)提升准确率。447 收藏 -
Provide适合局部树内隔离状态,Pinia适合跨组件需调试持久化的全局状态;二者互补协同,按状态生命周期归属选择:长期有意义归Pinia,仅模块内有效归Provide。447 收藏 -
CustomEvent构造函数创建自定义事件需传入事件名和含detail属性的配置对象,detail为必需字段用于携带任意数据;通过dispatchEvent触发,addEventListener监听时通过event.detail读取数据;可选bubbles、cancelable等配置控制事件行为。447 收藏 -
设计稿与页面尺寸不符的四大主因:box-sizing被覆盖致内容区变窄;rem换算基准(font-size)不统一;transform/zoom缩放干扰布局测量;DPR导致量尺工具读数虚高。447 收藏 -
poster仅在视频未播放、元数据未加载或加载失败时生效,loadedmetadata触发后浏览器可能立即用首帧覆盖;首帧截取须等seeked事件,而非loadeddata。447 收藏 -
JavaScript事件内存泄漏本质是闭包引用未释放:监听器未解绑或函数引用不一致导致DOM节点及关联数据无法回收,AbortController可统一管理生命周期。447 收藏 -
JavaScript前端无法直接生成PDF,但可用jsPDF(适合绘图/票据)、pdfmake(适合数据驱动排版)、html2pdf.js(HTML区块转PDF)或Puppeteer(服务端高保真)实现;需注意中文字体、内存限制及加密等高级功能须后端支持。447 收藏