-
WeakRef仅适用于JS对象的弱引用,避免阻止GC回收;不能用于离线资源缓存,因其不支持持久化、无TTL、不触发清理、无法跨页面/ServiceWorker存活,也不兼容CacheAPI或IndexedDB。
-
text-orientation仅在writing-mode为vertical-rl或vertical-lr时生效;mixed使CJK直立、ASCII旋转90°,适合现代中文竖排;upright使所有字符直立,易致英文不可读;sideways已废弃。
-
<main>标签是文档中唯一代表核心内容的语义化容器,必须且只能出现一次,不可嵌套于<article>等元素内,错误使用会损害可访问性与SEO。
-
JavaScript通过原型链实现继承,对象的[[Prototype]]指向原型,共享属性方法。函数的prototype用于构造实例,子类可通过Object.create()继承父类原型,结合构造函数借用实现组合继承。ES6引入class和extends语法,使继承更直观,但底层仍基于原型链。掌握原型链是理解JS面向对象的核心。
-
SVG是基于XML的矢量图形格式,可内联于HTML中,通过viewBox定义逻辑坐标、width/height控制显示尺寸;JavaScript可用createElementNS(指定命名空间)创建图形元素并操作属性、事件与动画,path元素通过d属性实现复杂路径绘制。
-
用CSSGrid+class切换实现列表/网格视图互切,核心是grid-template-columns:repeat(auto-fit,minmax(280px,1fr))配合预设.layout-grid/.layout-list类,JS仅切换class、不操作内联样式,确保响应式与可维护性。
-
通过设置flex-direction:column、flex-wrap:wrap和align-content,可实现Flexbox容器内子元素按列多行排列并控制列间对齐方式。
-
V8不做传统逃逸分析,所有JS对象默认堆分配;闭包变量进堆是因语言模型决定,而非“逃逸”,其性能代价在于内存局部性差、缓存命中率低及易晋升老生代。
-
DeclarativeShadowDOM是什么,为什么服务端渲染需要它传统attachShadow()只能在客户端JS中调用,服务端(如Node.js、SSR框架)无法执行JS,因此无法生成ShadowRoot。DeclarativeShadowDOM提供了纯HTML方式声明ShadowRoot,让服务端能直接输出带作用域样式的结构——关键在于用或元素,浏览器解析时会自动将其内容提升为ShadowRoot。服务端如何输出合法的Declarative
-
Memoization的核心是用空间换时间,通过缓存纯函数的计算结果提升性能;关键在于为数组输入生成稳定可哈希的键(如JSON.stringify),并注意适用场景与限制。
-
原生CSS+少量JS可实现可靠轻量页面滑动:overflow-x+flex适用于手动滚动场景,需设flex布局、隐藏滚动条;transform+transition适合全屏切换,需transition写在容器上并用transitionend清理;移动端手势须touchstart立即preventDefault、判断位移防误触、touchend惯性补位,并注意passive:false和事件卸载。
-
需用appearance:none及各浏览器伪元素(如::-webkit-slider-thumb)定制样式,进度填充须JS计算百分比并动态更新覆盖层宽度,移动端需加touch-action:manipulation防跳动,accent-color仅快捷设置thumb主色且有兼容限制。
-
list-style-position:inside会使序号被浮动元素遮挡或挤出可视区,因序号渲染在内容盒内而浮动元素脱离文档流;改用outside可快速解决,或通过display:flow-root创建BFC并配合padding-left保留序号空间。
-
实现响应式侧边栏菜单需通过CSS媒体查询和定位控制显示状态。1.HTML结构包含侧边栏与主内容区;2.移动端默认隐藏侧边栏(left:-250px),hover时滑出;3.屏幕≥768px时,侧边栏固定显示,position设为static;4.可选JS添加汉堡按钮控制显隐,提升交互体验。
-
rem精度问题源于基准值过小、换算引入小数及浏览器亚像素舍入三重误差叠加;推荐用20px作基准使常用尺寸转为一位小数rem,避免12px/16px等易产生循环小数的值,并确保postcss-pxtorem的rootValue与实际htmlfont-size严格一致。