-
JavaScript测试分单元测试和端到端(E2E)测试:单元测试聚焦函数或组件内部逻辑,快而细,用Jest/Vitest隔离运行;E2E测试模拟真实用户操作,慢但真实,用Cypress/Playwright在真实浏览器中验证全流程。
-
border会增加元素总尺寸,如width:100px;padding:10px;border:5px时,实际宽为130px;使用box-sizing:border-box可使border不增大全局尺寸;margin影响布局间距,垂直方向可能合并,水平方向累加,透明不可见但决定空白区域。
-
对象字面量{}最安全,避免new遗漏和原型污染;属性名含空格需引号;方法是函数值,支持简写;计算属性用[key];点号访问合法标识符,方括号支持动态键;this绑定取决于调用方式;Object.defineProperty默认不可枚举。
-
CSSGrid通过grid-template-columns明确设定侧边栏固定宽度(如240px或minmax(200px,240px))和主内容区1fr自适应,彻底解耦布局与内容,避免浮动、flex或百分比导致的宽度异常,并支持mediaquery无缝响应式切换。
-
try...catch仅对同步错误有效,如JSON.parse异常、undefined属性访问;对异步错误(setTimeout、Promise.reject)、语法错误、资源加载失败等无效;async/await中需配合await才能捕获Promise拒绝。
-
PDF转换前需先清理广告:用DevTools定位并删除广告DOM元素,或用Puppeteer在page.pdf()前执行JavaScript移除,或用wkhtmltopdf的--user-style-sheet注入CSS隐藏;残留广告需截图确认,顽固广告需人工校验。
-
常见写法为grid-template-columns:240px1fr;,实现左固定右弹性;需父容器设display:grid;,子项避免脱离文档流;响应式用媒体查询切换,如移动端改为1fr单列。
-
confirm()需在用户手势中调用并返回值阻断跳转,location.href等JS跳转须前置判断,异步场景应改用自定义弹窗;防数据丢失还需beforeunload事件兜底。
-
按钮组合的本质是布局约束与状态隔离,需通过flex/grid容器、position:relative包裹、gap替代margin、同步控制pointer-events与tabindex等实现可靠交互与可访问性。
-
弹性布局内容溢出本质是子项过度压缩或缺最小宽度,应通过flex-shrink权重调控、min-width设安全底线、flex-basis定初始尺寸及文字截断/换行处理协同解决。
-
grid-auto-columns用于设置网格容器中隐式创建的列的宽度。当子元素被定位到未显式定义的列时,浏览器会自动生成隐式列,默认宽度为auto;通过grid-auto-columns可统一控制这些列的宽,支持固定值、百分比、fr单位及min-content等取值;常与grid-auto-flow:column配合实现横向自动布局,适用于轮播图、动态卡片等场景;结合minmax()和媒体查询可提升响应式灵活性,且仅影响隐式列,不影响已定义的列轨道。
-
JavaScript生成器函数是能暂停和恢复执行的特殊函数,通过function*定义,返回迭代器对象,调用next()运行至yield并返回{value,done}结构,支持双向通信与惰性求值。
-
表单action未生效通常因前端未触发提交行为,如button缺少type="submit"或未调用event.preventDefault();action仅决定提交地址,空字符串表示提交至当前URL;相对路径易受路由影响,推荐绝对路径如"/api/submit"。
-
前端路由通过Hash或History模式实现SPA页面切换。Hash模式兼容性好但URL不美观;History模式URL简洁利于SEO,但需服务器配置支持。
-
Vue异步更新队列将多次数据变更合并为一次DOM更新,nextTick在patch完成后、浏览器渲染前执行微任务回调,patch由队列统一触发虚拟DOM比对与更新。