-
Vue响应式系统不代理null/undefined本身,但允许其作为响应式对象属性值;深层访问时需用?.或??避免中断;ref完全支持null/undefined;watch默认浅监听,修改嵌套属性需deep:true。
-
居中需按元素类型选择方案:行内内容用父容器text-align:center;块级元素定宽后margin:0auto;现代布局首选flex的justify-content:center与align-items:center;绝对定位元素用left/top50%加transform回拉。
-
前端日志与用户行为分析可通过封装Logger模块实现,支持分级记录并上报;结合事件监听自动采集点击、路由变化等行为数据。
-
MutationObserver默认不监听任何变化,必须手动配置、启动并指定真实DOM节点;监听class/style需用setAttribute而非直接赋值;监听文本需同时设subtree、characterData为true;React/Vue中应监听稳定父容器并及时disconnect。
-
本文详解如何通过静态访问器(staticget)、接口约束与泛型工厂模式,使父类无需硬编码即可动态获取子类定义的静态配置(如singularName/pluralName),消除重复方法声明,兼顾运行时健壮性与编译时类型检查。
-
按钮点击阴影变深的本质是利用:active伪类动态修改CSS变量--shadow-depth控制box-shadow垂直偏移,配合transform:translateY实现下陷效果,通过transition实现顺滑过渡,需注意浏览器兼容性与暗色模式适配。
-
Safari表单原生验证弹层需三法并用才能禁用:form加novalidate、input加oninvalid="this.setCustomValidity('')"、oninput中同步调用setCustomValidity(''),否则blur时仍会触发阻断式弹层。
-
必须阻止dragover默认行为才能触发drop事件,再读取e.dataTransfer.files获取文件列表,最后用FormData发送请求;accept属性无效,校验须在drop回调中手动完成。
-
Chrome68–92对autocomplete="new-password"支持不稳定:68–75仅注册/改密页有效,76–92遇name="password"等仍可能降级填充;93+起需动态name且立即设置,否则失效;iOSSafari长期不支持且长按粘贴绕过所有前端校验。
-
应在页面明确会用到但不立即加载的第三方域名时添加<linkrel="dns-prefetch">,如懒加载脚本、GoogleFonts、统计SDK等;避免为同源域名或未确认调用的域名添加,且href必须用协议相对URL(如//cdn.example.com),置于<head>中<metacharset>和<title>之后、首个外部资源之前。
-
z-index可用CSS变量但仅限静态数值,因不支持表达式或单位;需配合position才生效,且变量不创建层叠上下文;推荐分层定义基础值并避免嵌套calc。
-
Word中图片居中需用段落居中(Ctrl+E)或绝对定位,因Word不识别HTML的align和CSS居中属性,仅支持嵌入型图片的段落对齐或高级布局定位。
-
Number.isFinite仅判断值是否为有限的number类型,不进行类型转换;字符串、布尔值、null等非number类型及Infinity、NaN均返回false,与全局isFinite的关键区别在于后者会隐式转换。
-
HTML通知仅为前端展示层,真后台推送需ServiceWorker+WebPushAPI;NotificationAPI仅支持页面开启时的桌面通知,iOSSafari完全不支持;WebPush需HTTPS、用户授权、后端VAPID推送服务配合。
-
grid容器上设overflow无效是因为默认不创建BFC,需在子项设min-width:0/min-height:0并配合overflow才能生效,或在网格轨道用minmax(0,1fr)控制弹性。