-
垃圾回收靠标记-清除算法判断对象是否该被清理:从根对象出发递归标记可达对象,未标记的即为不可达垃圾;引用计数法因无法处理循环引用而被淘汰。
-
移动端background-attachment:fixed失效是浏览器主动禁用策略,iOSSafari早废弃、AndroidChrome84+默认忽略;最稳妥方案是用position:fixed+独立div模拟固定背景。
-
display:inline-block的li多出4px间隙是因HTML换行/空格被渲染为空白字符,解决方案首选ul设font-size:0并给li单独设字号,同时需统一vertical-align、处理IE兼容性,复杂布局应改用flex。
-
用纯HTML+CSS实现数字徽章:父容器设position:relative,徽章<span>设position:absolute;top:-6px;right:-6px;background:#ff4757;color:white;font-size:12px;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;,避免overflow裁剪、确保不塌陷、适
-
直接使用加号在HTML中通常可行,但为确保正确显示和传输,需根据场景选择:普通文本用+,避免解析错误用+或+,URL参数中用%2B编码。
-
表单提交必须调用event.preventDefault()阻止页面刷新,否则JS逻辑丢失;input事件适合实时验证但需防抖,change事件适合完成态校验;取值用.value而非innerText,复选框判断.checked;form.reset()仅重置HTML初始值,不处理JS动态修改或框架状态。
-
:checked伪类配合~只能选中DOM中同级且位于其后的元素,需确保checkbox与目标元素同父、顺序正确、无无关节点阻断;错误结构或属性设置会导致样式失效。
-
width本身不使元素变大,但content-box下实际宽度=width+padding+border;改用border-box可让width表示总宽;flex/grid中width还受flex-basis、min/max-width等影响。
-
用cubic-bezier(0.68,-0.55,0.27,1.55)可实现可控弹性动画,其负y1值制造初始下拉,超1的y2值产生回弹,配合单次scale关键帧与0.4s–0.8s时长达成自然效果。
-
在HTML中创建分割线,最直接、最标准的方法就是使用标签。它代表一个主题性的分隔,通常在视觉上表现为一条水平线。这个标签是自闭合的,不需要结束标签。解决方案要创建一条分割线,你只需要在HTML文档中你希望出现分隔的地方插入标签即可。例如:这是第一段内容。这是第二段内容,通过分割线与第一段隔开。从语义上讲,标签表示内容中主题的改变。比如,一篇文章从一个话题切换到另一个话题,或者一个故事场景的转换。它不仅仅是视觉上的分隔,更承载了结构上的意义。当然,在视觉呈现上,浏览器会默认给它一个样式,通常是一条灰色的
-
用novalidate属性可彻底关闭表单原生验证,只需在<form>标签中添加novalidate(如<formnovalidate>),它优先级最高、无需JS、仅作用于当前表单。
-
作用域链是函数定义时固化下来的词法嵌套关系,非运行时动态生成;它存储在函数的[[Environment]]内部槽中,ChromeDevTools“Scope”面板显示的是其运行时快照,不可直接打印或遍历。
-
“路由锁”是前端SPA中通过路由守卫拦截跳转的控制机制,用于防止用户在表单提交、支付等关键操作中误离开导致状态丢失,本质是JavaScript层的跳转拦截与确认逻辑。
-
@keyframes动画必须显式定义0%和100%关键帧,仅用from/to存在兼容风险;animation缩写中duration须在delay前且带单位;仅transform和opacity可GPU加速;forwards对infinite动画无效,中断时需用animationend事件固化状态。
-
答案:disabled属性用于禁用表单元素,使其不可交互且值不提交。可通过HTML直接添加或JavaScript动态控制,支持input、button等表单元素,与readonly区别在于值不提交、无法聚焦,需配合后端验证和无障碍设计。