-
JavaScript代码覆盖率衡量的是测试执行时源码中被实际运行的语句、分支、函数和行,而非测试数量;它不保证质量,但能暴露未触达的逻辑盲区如else分支、catch块等。
-
在Ionic+Angular+Capacitor项目中,对@capacitor/status-bar插件进行单元测试时,因Web环境下插件未实现而报错,可通过路径别名+全局mock方式精准模拟StatusBarAPI,使StatusBar.setStyle()等调用可被spyOn和断言。
-
可使用语义化<hr>标签或CSSborder属性实现视觉分隔:一、<hr>用于段落章节分隔;二、border-bottom为块级元素加底部分割线;三、border-left/right实现垂直分隔;四、伪元素::after/::before绘制自定义分割线。
-
使用CSS的:user-invalid伪类可设置用户输入无效时的样式,它在用户交互后才生效,避免页面加载时就显示错误,提升用户体验。与:invalid相比,:user-invalid更温和,仅在用户操作且输入无效时触发,适合大多数表单验证场景。配合:valid、:required等伪类,可构建直观、友好的表单反馈系统。
-
:not()伪类在CSS中用于排除特定元素,其语法为选择器:not(要排除的选择器)。例如,div:not(.special)选中除class="special"外的所有div;li:not(:first-child)选中除第一个外的所有列表项;button:not(:disabled)选中除禁用状态外的所有按钮。:not()支持排除多个元素的方式取决于CSS版本:CSS3中需链式写法如div:not(.class1):not(.class2),而CSS4允许直接传入列表如div:not(.class1,
-
严格模式通过显式报错暴露隐患:未声明变量赋值、undefined调用方法、重复参数名、只读属性赋值、with语句均抛出错误;需用"usestrict"双引号置于顶部或函数首行启用。
-
卡片边框错位主因是默认content-box导致padding和border额外增加宽高,解决方法是全局设置box-sizing:border-box;需统一间距策略、确保flex对齐、处理内容高度不均,并用开发者工具验证。
-
跨域iframe通信必须使用window.postMessage(),发送方调用iframe.contentWindow.postMessage(),接收方监听message事件并严格校验event.origin和event.source;document.domain已基本淘汰;服务端代理或同源中转页可作为补充方案。
-
使用CSS过渡实现按钮组动画可提升用户体验,通过宽度、透明度、transform及颜色渐变的平滑变化,结合Flexbox布局与统一缓动函数,使显示隐藏、排序切换更自然流畅。
-
:hover:focus是交集伪类,仅当元素同时处于悬停和聚焦状态时生效,适用于需精确控制交互样式的场景,如渐进式提示或无障碍视觉反馈。
-
@media查询写在CSS底部更安全,因浏览器自上而下解析,底部的响应式规则可确保基础样式优先加载,避免小屏设备先渲染错乱的大屏布局再重绘,减少弱网下的视觉抖动。
-
头部链接用于引入CSS、favicon、预加载资源等;2.使用<link>标签设置rel属性实现不同功能;3.正确路径与属性配置确保资源正常加载与性能优化。
-
transition-delay无法实现多属性串行执行,所有过渡起始时刻相同;须合并为单条transition声明,注意timing-function不可省略;负delay仅跳过动画前段而非改变触发时机;真需顺序执行应使用keyframes、JS事件或动画库。
-
sessionStorage可存XML字符串,但需先用XMLSerializer序列化、再用DOMParser解析;其数据仅限当前标签页会话,刷新保留,关闭标签页即丢失,且单条容量通常限5–10MB。
-
WebCryptoAPI可在浏览器中实现加密、解密、签名和哈希等功能,支持AES、RSA、SHA等算法,适用于数据保护与安全通信;需先检测环境支持并建议在HTTPS下使用;通过crypto.subtle.generateKey可生成AES或RSA密钥;AES-GCM模式结合IV实现对称加解密,需注意iv随机性与传输;RSA-OAEP用于非对称加密,适合小数据加密如密钥传输;SHA-256可通过crypto.subtle.digest计算数据哈希以校验完整性;实际应用中应结合后端设计安全协议,避免密钥泄露或