-
图片在Grid中拉伸变形的根源是img未设object-fit且父容器无明确尺寸约束;需先为griditem设置宽高或aspect-ratio,再对img应用object-fit:cover/contain并配overflow:hidden与object-position。
-
直接用localStorage.setItem易出问题,因其仅支持字符串:存对象变"[objectObject]",null/undefined转字符串,iOS隐私模式下写入抛QuotaExceededError且静默失败;故封装须守住序列化-反序列化与错误兜底两条底线。
-
迭代器是JavaScript中按需遍历数据的机制,核心是实现[Symbol.iterator]方法返回含next()的对象,每次调用返回{value,done};可借助生成器函数快速创建,yield产出值,自动满足迭代协议。
-
不能。CSS.supports()是JavaScriptAPI,依赖JS引擎初始化和DOM就绪,无法在JS运行前调用;应改用CSS的@supports规则实现早期能力检测。
-
JavaScript模块化主流规范有CommonJS和ES6Module两种广泛落地,前者用于Node.js默认环境,后者获现代浏览器及新版Node原生支持;AMD/CMD已基本淘汰。
-
中介者模式通过引入中介者对象封装组件交互,实现解耦。组件间通信由中介者统一管理,如搜索框触发事件、结果列表监听渲染,避免直接依赖。优势为降低耦合、提升可维护性与扩展性,适用于表单联动、状态同步等场景。但需防中介者臃肿,避免过度抽象,适合复杂交互而非简单逻辑。
-
Symbol.toPrimitive不能使组件实例真正参与数学运算,仅控制类型转换;需配合显式转换逻辑(如.valuegetter或.add()方法)才能实现+、*等运算。
-
<fieldset>元素默认带有边框和外边距,但若标签未正确闭合(如<select>缺少结束标签)或语义结构错误,会导致渲染异常、边框消失、内容重叠。本文详解常见陷阱与修复方法。
-
不能只改后缀,因SCSS解析器更严格:需同步更新文件后缀、引用路径及做最小语法适配,否则易致编译失败或样式失效。
-
十六进制颜色写错一位即失效,浏览器仅接受3位或6位合法十六进制(a–f),非法字符或位数错误会导致整条声明静默忽略;rgb()、rgba()、hsl()等函数也需严格遵循参数类型、范围与单位规则,否则同样静默失效。
-
答案:编写JavaScript库应优先使用功能检测而非user-agent判断环境,通过检查全局对象属性(如'fetch'inwindow)、验证API行为完整性、结合降级方案与模块兼容处理,确保代码在多环境中可靠运行。
-
异步迭代器适用于逐步获取异步数据的场景,如流式读取文件、分页请求API和任务队列处理。通过forawait...of语法,开发者能以同步风格线性编写异步序列处理逻辑,提升代码可读性与控制力。
-
Astro默认对组件内脚本进行作用域隔离,导致页面跳转后事件监听丢失;通过is:global指令将导航栏交互逻辑提升为全局脚本,即可修复移动端菜单无法二次展开的问题。
-
background-size:cover会裁切图片是因为其逻辑是等比缩放填满容器并裁剪溢出部分,不保证主体可见;需配合background-position、aspect-ratio和容器尺寸约束来精准控制构图。
-
JSON.stringify的核心作用是将JavaScript对象或值转换为JSON字符串,便于数据传输(如fetch发送POST请求)和存储(如localStorage);2.处理特殊类型时需注意:函数、undefined、Symbol会被忽略,数组中对应值变null,循环引用会抛错,Date转ISO字符串但反序列化仍为字符串,BigInt和Map/Set需手动处理;3.通过replacer参数可过滤属性或自定义转换逻辑(如隐藏敏感信息、处理BigInt),space参数可格式化输出(数字为空格数,字符