-
TypeScript是JavaScript的超集,所有合法JS代码可直接作为TS使用;其核心是静态类型系统,并扩展接口、泛型、枚举等能力;类型检查在编译前进行,提升可维护性与开发体验。
-
ServiceWorker通过缓存策略实现离线访问与性能优化,如缓存优先适用于静态资源,网络优先用于动态内容,结合策略可提升用户体验,并需注意版本管理与更新机制。
-
grid-row-gap仅控制相邻行轨道间间距,不作用于容器首行顶边和末行底边;需配合padding或align-content实现上下视觉等距。
-
JavaScript模块是独立加载、作用域隔离、可复用的代码单元,需用type="module"、严格模式、显式export/import,路径须带扩展名且区分大小写。
-
最可靠方式是用getBoundingClientRect()获取视口坐标后比较:a.right>b.left&&a.left<b.right&&a.bottom>b.top&&a.top<b.bottom。
-
原生CSS嵌套必须显式使用&:合法写法包括&:hover、&p、&+&、&>.content等;非法写法如直接写.title或p{};不支持Sass式无&缩进;推荐用于媒体查询、伪类收拢和组件隔离,避免超3层或替代BEM命名。
-
通过CSS的transition和transform属性实现按钮点击时的平滑缩放与颜色变化,.smooth-btn设置背景色、圆角及过渡效果,:active状态触发scale(0.95)缩小和深色背景,结合box-shadow增强质感,动画自然且不干扰布局,提升交互体验。
-
父容器overflow:hidden会裁剪脱离文档流的子元素,z-index无效;应检查是否需该属性,改用display:flow-root或移出DOM;同时注意层叠上下文对z-index的限制。
-
答案:justify-content控制主轴对齐,align-items控制交叉轴对齐,二者结合可实现居中、两端对齐等布局效果。
-
JavaScript的类是基于原型的语法糖,class声明本质是函数加prototype操作,实例属性须在constructor中用this显式初始化,继承必须正确调用super()以维护原型链。
-
WebGL通过JavaScriptAPI利用GPU在浏览器中渲染2D/3D图形,核心流程包括获取上下文、编写GLSL着色器、编译链接程序、传入顶点数据、设置矩阵变换并调用绘制命令;以立方体旋转为例,需定义顶点与索引、创建缓冲区、应用模型视图投影矩阵、启用深度测试并使用requestAnimationFrame实现动画;进阶优化涵盖光照、纹理、对象封装、计算缓存及FBO应用,掌握矩阵运算顺序与坐标系是提升关键。
-
使用rem单位结合媒体查询可解决多设备字体不一致问题:rem相对于根元素字体大小,通过媒体查询动态调整html的font-size,使文字等比缩放;配合vw单位可实现更平滑的响应式效果,推荐设定清晰断点并统一项目字体单位,确保各屏幕下显示协调。
-
JavaScript数字基于IEEE754双精度浮点,最大安全整数为2^53-1,超范围或小数运算如0.1+0.2≠0.3会导致精度问题。解决大数用BigInt类型,通过加n或BigInt()创建,支持大整数精确运算但不兼容number和Math方法;小数精度问题可通过放大法转整数计算、toFixed()格式化显示或使用误差范围判断近似相等来缓解。
-
min-width和max-width可控制元素宽度范围,实现自适应布局。1.min-width设定最小宽度,防止元素过小影响阅读,如设置div最小宽度为300px;2.max-width限制最大宽度,避免大屏下文本过长,常用于容器居中;3.结合使用可让元素在范围内弹性伸缩,如卡片组件设为250px至500px间自适应,提升多设备体验。
-
padding和border都不直接控制元素间的距离这是最常见的误解。padding是内容区到边框的距离,border是边框自身宽度,它们影响的是元素“内部尺寸”,而非它和兄弟或父容器之间的间距。真正控制元素间距离的是margin——外边距才是专门为此设计的。为什么用padding或border“凑”间距会出问题强行用padding或border模拟间距,会导致以下实际后果:padding会让背景色、背景图、阴影等向内延伸,视觉上可能误判可点击区域或内容边界border