-
JavaScript隐式转换规则包括:1.布尔上下文中falsy值(如0、""、null等)转为false,其余为true;2.字符串上下文中+操作符触发拼接,如"5"+3→"53";3.数值上下文中运算符促发转数字,如5-"3"→2;4.对象转换时优先调用valueOf(),否则toString(),如[]+""→""。
-
title标签必须位于head内且唯一,浏览器仅识别首个有效内容;错误位置、重复或为空会导致SEO降权和无障碍访问失效,SSR/静态页须在HTML初始响应中提供真实标题。
-
:any-link仅匹配含有效href的a元素,不匹配link、空href或SVG中的a;受隐私限制,对:visited仅颜色生效;Chrome89+/Firefox84+/Safari15.4+支持,旧版需回退至:link/:visited。
-
用语义化HTML(section/article/figure)+CSSGrid(auto-fill/minmax)实现响应式商品列表,配合viewport、alt、aria属性保障可访问性与移动端适配。
-
flex-grow控制子元素扩展以填充剩余空间,值越大占比越大;flex-shrink决定空间不足时的压缩比例,值越大收缩越明显,二者配合实现灵活布局。
-
input类型由type属性决定而非文件名;截至2026年,主流浏览器稳定支持22种标准type值,datetime已废弃、data为date拼写错误;file过滤需用accept指定MIME或扩展名,multiple须显式声明;移动端键盘适配依赖正确type值,拼写错误会导致降级为text。
-
邮件模板必须用XHTML1.0TransitionalDoctype、table布局、内联样式,禁用HTML5标签、外部CSS、Flexbox、Grid和媒体查询,600px宽度最安全,所有样式(字体、行高、颜色等)须写在每个标签的style属性中。
-
深度监听性能开销源于递归遍历建立依赖和变更时的深层diff;优化需精准监听、computed缓存、节流防抖、手动diff或替代策略。
-
<metaname="robots">标签仅是建议,生效需页面被成功抓取;若robots.txt屏蔽路径、返回4xx错误、content值大小写/空格/标点错误、或JS动态插入,均导致失效;X-Robots-Tag更可靠且优先级更高。
-
可通过路由守卫配合beforeunload事件实现离开前提醒:监听表单变更设isFormDirty为true,beforeunload触发浏览器原生提示,路由守卫(Vue的beforeRouteLeave或React的useBlock)拦截跳转并自定义提示,再辅以草稿保存和状态同步优化体验。
-
fixed元素相对于视口定位且脱离文档流,滚动时保持位置不变;需设置top/right/bottom/left偏移值才可见,但受transform/perspective/filter等属性影响而退化为相对父容器定位,并在移动端存在软键盘、滚动闪烁等兼容性问题。
-
mark是唯一语义正确、可访问且被搜索引擎识别的高亮方式;直接innerHTML.replace()会导致XSS、DOM损坏及结构错乱;安全做法须用TreeWalker遍历文本节点,结合escapeHtml、matchAll和range.surroundContents()实现。
-
应禁用触摸设备的:hover动画,使用@media(hover:none)或(any-hover:none)精准拦截;卡片默认静态,仅在(hover:hover)且(pointer:fine)时启用transform/opacity动画;iOS点击跳变需加-webkit-tap-highlight-color:transparent和touch-action:manipulation。
-
id是唯一标识,class是复用标签;id用于锚点、label绑定和高频JS访问,class适用于样式复用、组件化开发及行为解耦,重复id会导致getElementById返回首个匹配元素且难以排查。
-
Vue2中watch默认监听不到数组索引赋值(如arr[0]=newValue)和修改length的变化,因Object.defineProperty无法拦截;响应式操作有push、pop、shift、unshift、splice、sort、reverse;非响应式操作包括索引赋值、length修改及直接替换引用(除非deep:true)。