-
:hover生效需满足元素有尺寸、可命中且pointer-events未禁用;安全标签为<button>等,默认支持;<div><span>需设padding/width或cursor:pointer;嵌套悬停须正确书写选择器,动画应加在属性而非伪类上。
-
<tt>标签在HTML4中仅实现等宽字体显示,无语义且HTML5已废弃;虽浏览器为兼容仍渲染,但存在可访问性缺陷、工具报错及未来失效风险,应按语义选用<kbd>、<var>、<code>等替代或CSS方案。
-
最简洁可靠的方式是用Object.entries()配合Map构造函数,因其返回可迭代的[key,value]数组且仅遍历自身可枚举属性;但会丢失Symbol键和不可枚举属性,此时需用Reflect.ownKeys()手动构建。
-
<p>最省事、最稳的方式是加一行CSS:html{scroll-behavior:smooth;},必须作用于html元素,写在body或*上无效;需排查!important覆盖、目标元素可见性及旧版Safari兼容性问题。</p>
-
insertAdjacentHTML的四个参数按DOM结构定义:“beforebegin”插目标前同级,“afterbegin”插目标内首子,“beforeend”插目标内末子,“afterend”插目标后同级;不执行脚本、不触发事件,需手动处理。
-
AbortController本身不支持去重和熔断,需在外层封装逻辑层:用Map缓存pending请求实现去重,用计数器+时间窗口管理熔断状态。
-
服务端验证是数据安全的核心,JavaScript输入检查仅用于提升用户体验。前端检查可实时反馈、减少无效提交,但易被绕过;后端必须独立验证所有输入,确保字段、类型、长度、格式合法,并防范攻击。两者协同工作,前端提升交互流畅性,后端保障数据安全与业务规则一致性,任何客户端数据都应视为不可信。
-
JavaScript正则表达式可通过字面量(/pattern/flags)或构造函数(newRegExp('pattern','flags'))创建,常用标志有g、i、m、s;核心元字符如\d、\w、+、*、?及分组()、(?:…)、(?<name>…)提升匹配精度;高频操作包括验证、提取、替换、分割;需注意lastIndex状态、中文需u标志、避免用正则解析嵌套结构。
-
Canvas是唯一可行的底层方案,因其在实时协作、笔迹平滑性与性能压测下表现稳定;必须手动处理事件节流、坐标归一化、路径压缩和上下文重置以解决卡顿、断笔、偏移问题;需检查getContext('2d')是否返回null并fallback,避免静默失败;移动端须校验CSS缩放导致的坐标扭曲;必须同时监听鼠标与触控事件并阻止默认行为;擦除应使用'destination-out'合成模式而非画白色;导出时需适配跨域、Retina屏及透明背景。
-
是的。audio标签自HTML5起即为原生语义化元素,无需手动“HTML5化”,只要浏览器支持HTML5(如Chrome4+、Firefox3.6+等)即可直接使用;其失效主因是路径错误、MIME类型不匹配、file://协议限制、格式兼容性不足或缺少controls属性。
-
邮件链接用mailto:协议,需紧接合法邮箱且无空格;电话链接用tel:协议,国际号码须+开头E.164格式;协议名全小写,移动端有效,微信内置浏览器有限制。
-
JavaScript操作JSON仅用JSON.stringify()和JSON.parse();前者用于序列化纯数据结构(需避函数/Date/undefined/循环引用),后者解析前须确认输入为合法双引号JSON字符串,且推荐用Response.json()替代手动解析。
-
用CSStransform实现图片镜像需用scaleX(-1)或scaleY(-1),避免误用scale(-1);Canvas需负宽/高配合drawImage;SVG用scale(-1,1)并校正位置;移动端需手动换算触摸坐标。
-
Intl.Segmenter是现代JavaScript中专为语言感知文本分割设计的API,能按Unicode图符簇(如emoji、组合字符、CJK字)精准切割,避免split('')或Array.from(str)按UTF-16代码单元拆分导致的显示错乱;支持granularity:'grapheme'/'word'/'sentence'及多语言locale适配,Chrome80+等主流环境原生支持。
-
文件上传必须设置enctype="multipart/form-data",它是唯一支持二进制文件传输的编码类型;其他值如application/x-www-form-urlencoded或text/plain会导致文件内容损坏或丢失。