-
理解this和原型的关键是观察调用位置与方式:调用位置决定this起点(如obj.fn()中this指向obj,f=obj.fn;f()则丢失绑定),调用方式分普通/方法/构造/显式四种;原型是委托查找链,实例通过__proto__沿prototype链向上查找属性。
-
CustomEvent的detail属性需传递不可变、结构清晰的纯数据,发送方用Object.freeze封装并校验类型,接收方必须主动校验字段存在性与类型,配合命名规范和文档约束以避免隐式耦合与数据污染。
-
col和colgroup不能直接设置文字颜色或背景色,因为col元素不承载内容,仅定义列结构属性,color、background-color等样式基本无效;可靠用法是配合border-collapse:collapse控制列宽和边框,文字样式需通过tbodytd:nth-child(n)、theadth:nth-child(n)等选择器作用于单元格。
-
CSS盒模型与伪元素::before、::after结合可提升视觉与布局效率。伪元素具独立盒模型,默认为行内元素,可通过display调整类型,依附宿主但可单独设置样式,常用于添加装饰或辅助布局。利用content、padding、border、margin控制空间,可实现角标、双重边框、渐变遮罩等效果;在布局中支持清除浮动、创建三角箭头、扩展点击区域。使用时需声明content属性,注意pointer-events交互设置,避免滥用以保性能,兼顾可访问性。掌握其组合逻辑,能在无额外DOM下实现高效设计。
-
<cite>标签仅语义化包裹被引用作品的正式标题(如书名、电影名等),不可含作者、URL、年份等元数据,且必须置于blockquote、q或描述性语句等引用上下文中使用,脱离语境则丧失语义价值。
-
progress元素color不生效因其是替换元素,视觉由浏览器UA样式控制;必须用accent-color(Chrome93+/Firefox97+/Safari15.4+)或伪元素(如::-webkit-progress-value、::progress-value)定制样式。
-
原生alert/confirm/prompt不响应Esc键,因其为同步阻塞式API,非DOM元素,不派发任何事件;仅<dialog>支持Esc触发cancel事件,且需showModal()并可preventDefault()拦截。
-
函数参数解构通过对象解构+默认值实现自解释接口,提升可读性、灵活性与容错性;支持任意调用顺序、新增字段不破坏旧代码、IDE自动提示、嵌套配置分层清晰,并需用默认空对象防御null/undefined。
-
text-wrap:nowrap不是标准CSS属性,根本不存在;正确写法是white-space:nowrap,它通过禁止自动换行并合并空格来实现单行显示,需配合width、overflow和text-overflow才能稳定生效。
-
准确检测Retina屏的核心是window.devicePixelRatio≥2,它是唯一稳定、无需polyfill的原生信号;其他方法如媒体查询、UA解析或宽高比计算均因兼容性或响应性问题不可靠。
-
float元素文字不环绕而换行,主因是后续块级容器未清除浮动或未触发BFC,导致无视浮动剩余空间;父容器塌陷也会造成视觉错位;文字需处于同一块级容器内的内联上下文中才可环绕。
-
Smi不是堆对象,无内存布局,直接编码在指针低位;HeapNumber是堆分配对象,含map指针和value字段,偏移8字节。二者仅通过指针LSB区分类型:0为Smi,1为堆对象。
-
浏览器和Node.js事件循环的核心区别在于运行环境与职责不同:浏览器侧重UI渲染与用户交互,Node.js专注高性能I/O。浏览器事件循环按“宏任务→微任务→渲染”流程执行,确保界面流畅;Node.js事件循环由libuv实现,分为多个阶段(如timers、poll、check等),每个阶段处理特定任务,以优化服务器端并发处理。在任务优先级上,Node.js中process.nextTick优先于Promise微任务执行,体现更细粒度的控制;浏览器中requestAnimationFrame与渲染同步,
-
<bgsound>标签已彻底失效,现代浏览器完全忽略它;它从未进入W3C标准,仅IE私有支持,HTML5中必须用<audio>替代并遵循自动播放策略。
-
CSS变量可动态控制background-position,需在:root或选择器内声明带单位的变量,用var()调用并配合calc()计算,多背景图时须一一对应变量,注意兼容性与生命周期管理。