-
JavaScript装饰器(@)仍是Stage3提案,未被ECMAScript标准采纳,所有浏览器原生不支持;必须经Babel或TypeScript编译转译为函数调用才能执行,其本质是语法糖而非内置机制。
-
JavaScript已发展为通用编程语言,可运行于浏览器、服务器(Node.js)、桌面(Electron/Tauri)、移动端(ReactNative/Ionic)、数据库(MongoDB)、IoT设备等;需注意各环境API、模块系统、ES版本及安全限制差异。
-
WeakMap是唯一不阻止垃圾回收的键值结构,专为元数据绑定设计;键必须是对象且为弱引用,无size、遍历、清空等方法,无法序列化或调试。
-
图片垂直居中需据容器类型选择方案:行内元素用line-height+vertical-align:middle;块级容器用flex布局align-items:center;混合场景可用inline-flex,避免line-height与flex混用。
-
使用position:fixed可将元素固定在页面顶部,需设置top:0、width:100%、z-index等属性;注意避免父元素含transform/filter导致失效,iOS软键盘引发偏移可用sticky替代或JS修复,确保层级不被遮挡。
-
:focus伪类可实现输入框高亮,通过自定义border-color和box-shadow并配合transition,既能提升表单可用性,又能增强视觉反馈,但需确保去除outline后保留其他可视提示以保障可访问性。
-
答案:引入Animate.css库后,通过添加animate__animated及具体动画类名即可为元素添加预设动画效果。使用CDN或npm安装并导入文件,为元素设置如animate__fadeIn、animate__slideInLeft等类名触发动画,结合animate__repeat-3、animation-delay和JavaScript动态控制实现交互式效果,利用IntersectionObserver实现滚动触发动画,简化前端动画开发流程。
-
IndexedDB高级用法包括:1.使用游标遍历数据,结合keyRange实现条件查询与分页;2.创建索引(含复合索引)提升查询性能,注意写入开销;3.通过事务控制保证数据一致性,监听错误并设计重试机制;4.支持存储Blob等二进制文件,可切片处理大文件,配合ServiceWorker实现离线访问。
-
可用CSSborder-left、伪元素、旋转hr、flex子项或SVG五种方法绘制竖线:border-left最常用;伪元素语义纯净;旋转hr保持语义但需处理布局;flex子项适合导航分隔;SVG精度最高且可响应式缩放。
-
柯里化将多参函数转为单参函数链,如add=a=>b=>a+b;偏应用固定部分参数生成新函数,如double=multiply.bind(null,2)。2.函数组合通过compose连接函数,数据流清晰,如greet=compose(toUpper,exclaim,sayHello)。3.不可变性要求每次修改返回新对象,可用扩展运算符或Immer简化深层更新。4.高阶函数如map/filter/reduce是函子思维基础,Maybe函子可安全处理null/undefined,避免层层判断。这些
-
使用grid-auto-flow:dense与媒体查询可实现响应式图文混排。通过设置网格容器的列数、行高及自动填充模式,结合不同屏幕宽度调整布局结构,使大图占多格、小元素自动补位,提升空间利用率;配合minmax()与auto-fit进一步增强弹性,确保在手机、平板和桌面均有良好显示效果,同时需注意DOM顺序与可访问性协调。
-
浮动曾用于div模拟表格的列排列,通过float:left实现横向布局,需清除浮动避免塌陷,但存在响应式差、对齐难等问题,现多被Flexbox和Grid取代。
-
要让开发环境支持热更新,需配置Webpack的HMR机制并配合开发服务器。首先在webpack.config.js中启用devServer.hot:true,并确保入口包含HMR运行时;然后在代码中通过module.hot.accept()手动接受模块更新,尤其React项目可结合react-refresh-webpack-plugin实现组件级更新;也可使用Vite、CreateReactApp等现代工具简化配置,它们开箱即用;最后确保开发服务器正常运行,WebSocket连接畅通,无网络阻塞或控制台报
-
样式缺失主因是CSS路径错误,需检查外链路径是否协议域名正确、相对路径是否以HTML文件位置为基准,并用Network面板按三步法排查请求状态与发起源。
-
JavaScript中数字精度问题源于IEEE754标准导致0.1+0.2≠0.3,因浮点数无法精确表示某些十进制小数,解决方案包括整数化运算、toFixed()格式化及误差容忍比较。