-
AbortSignal.timeout仅在Chromium120+、Firefox125+、Safari17.4+原生支持,旧版抛TypeError;需运行时检测,降级须用Promise.race且注明网络层未中断;timeout单位为毫秒但建议配置用秒并校验,Node.js行为与浏览器不等价;熔断需区分错误类型,timeout时error.code为'ABORT_ERR';并发请求必须独立signal,避免误中断。
-
Vue中emit是子组件向父组件通信的唯一合规方式,需用defineEmits声明事件名后调用emit发送;父组件通过@事件名监听,支持Promise异步响应与TypeScript类型约束。
-
答案:推荐优先使用扩展运算符合并对象,因其语法简洁、不修改原对象且可读性强;若需兼容老浏览器则选用Object.assign()。两者均为浅合并,深层合并需借助其他方法。
-
JavaScript缓存函数的核心是用对象或Map缓存参数组合与结果,相同输入直接返回缓存值;适用于纯函数如斐波那契、阶乘等;基础版支持单基本类型参数,增强版用JSON.stringify处理多参但有局限,生产级推荐Map加自定义键生成器,并注意纯函数约束、内存泄漏和异步缓存等问题。
-
OffscreenCanvas在Worker中可用,但必须由主线程通过transferControlToOffscreen()创建并移交控制权,Worker内直接new会报TypeError:Illegalconstructor;需验证typeofOffscreenCanvas!=='undefined'且配合主线程canvas实例使用。
-
答案:用HTML、CSS和JavaScript可轻松开发小游戏,核心是Canvas绘图、动画循环与事件处理。1.HTML搭建结构,CSS美化界面,JavaScript控制逻辑;2.示例代码展示小红球水平移动;3.关键技术包括CanvasAPI、requestAnimationFrame、事件监听与碰撞检测;4.常见类型如贪吃蛇、打砖块、跳跃游戏;5.可通过GitHub、CodePen、MDN和Phaser.js学习源码。掌握基础后多练习即可熟悉开发流程。
-
箭头函数解决普通函数this绑定混乱问题,因其不绑定this而沿用外层词法作用域;但不可用作构造函数,也不适用于需动态this的场景,如对象方法或类组件事件处理器。
-
需用JavaScript实现网页倒计时:一、Date计算时间差并setInterval每秒更新;二、data-*属性解耦目标时间;三、requestAnimationFrame提升精度;四、padStart补零格式化;五、通过时区标记(如Z或+08:00)或时间戳规避本地偏差。
-
flex-grow控制子元素在容器有剩余空间时的扩展比例,flex-shrink决定空间不足时的收缩行为。默认flex-grow:0不扩展,flex-shrink:1可等比收缩。通过设置不同值可实现内容区自动填满、防止输入框压缩等布局效果。推荐使用flex简写如flex:1(等价于flex:110%)或flex:10auto,并配合min-width:0解决收缩失效问题,从而构建自适应弹性布局。
-
true+1===2成立,因为JavaScript在数值运算中将true隐式转换为1,再执行加法得2;加号优先数值转换而非字符串拼接,且布尔转数值规则为true→1、false→0。
-
overflow-wrap:break-word单独使用无效,需配合white-space:normal和明确的max-width才能触发换行;flex子项还需加min-width:0解除默认保护。
-
应使用details+summary实现FAQ折叠,它原生支持可访问性、SEO和无需JS的交互;summary仅允许短语级内容,禁用块级标签;需扩大移动端点击区域并修复iOSSafari点击异常。
-
::first-line仅作用于块级元素视觉第一行,无法控制第2行或N行;无::second-line等标准伪元素;可用样式有限,且受设备、字体、缩放影响。
-
style-loader必须在css-loader右侧,因Webpackuse数组从右向左执行:css-loader先解析CSS为JS模块,style-loader再注入到head;顺序颠倒会报错。
-
使用flex-wrap:wrap与flex:11300px可实现响应式卡片堆叠,容器设display:flex和flex-wrap:wrap启用换行,子项通过flex属性在不同屏幕下自动调整列数,结合媒体查询可优化移动端表现。