-
ReactNative通过桥接机制实现JS与原生高效通信,核心由JavaScript线程、原生线程和桥接层组成,支持异步序列化调用,需注册原生模块供JS访问,存在性能开销,可通过批量操作、TurboModules、Hermes等优化。
-
JavaScript常用排序算法中,快速排序是高效O(nlogn)的分治算法,选基准值划分数组并递归排序,原地实现但最坏O(n²),不稳定,适合无序数据。
-
要让textarea显示HTML代码而非渲染它,需将HTML特殊字符转义为实体,如<转为<,因textarea设计为纯文本输入区,不解析HTML以确保安全;若需预览HTML效果,应采用富文本编辑器或“输入框+预览区”模式,并对用户输入进行严格消毒以防XSS攻击。
-
选构建工具应匹配项目类型与团队能力:小项目用Vite,中大型用Webpack,库用Rollup,提速用esbuild/SWC;核心配置优先入口输出、模块解析、TS支持、HMR;迁移宜渐进,协作需统一配置包。
-
float不能作为主布局手段,仅适用于图文混排文字环绕和IE8–IE10遗留系统维护;其脱离文档流导致塌陷、无法垂直对齐、响应式适配差等缺陷已被Flex/Grid取代。
-
Grid子元素响应式顺序错乱的根源是grid-template-areas未在各断点同步更新,且grid-area未随媒体查询重分配;须为每个断点完整声明template与area,避免依赖隐式行为,兼顾DOM顺序、语义与可访问性。
-
答案:Babel插件通过操作AST实现自定义语法转换,广泛应用于新特性支持、DSL嵌入和代码优化。其核心是解析代码为AST,遍历并修改节点,最后生成新代码;开发者可借助visitor模式和pathAPI完成节点替换,如将__DEV__转为环境判断,提升开发效率与语言表达力。
-
JavaScript变量提升指声明被移至作用域顶部,但赋值不提升;var声明提升后访问为undefined,let/const存在暂时性死区会报错,函数声明完全提升而函数表达式仅变量名提升。
-
JavaScript状态管理核心是数据变化可追踪、可预测且与视图协同更新,可通过普通对象+函数封装、Proxy响应式、发布-订阅或现代工具链(如Zustand、ReduxToolkit)实现,关键在匹配项目规模与团队习惯。
-
答案是使用transition属性可解决:hover文字颜色闪烁问题。通过在正常状态添加如transition:color0.3sease,使颜色变化平滑过渡,避免突变;将transition写在非hover状态确保进出均有动画,并控制持续时间与缓动函数优化体验。
-
使用iframe实现安全沙箱需遵循最小权限原则,通过分离域名强制跨域隔离,避免同源部署导致XSS穿透;配置X-Frame-Options和CSP防止恶意嵌入与资源加载;启用sandbox属性限制iframe能力,如仅允许脚本执行时使用allow-scripts;严格校验postMessage的origin与数据结构,防止信息泄露与命令注入;结合CSP的frame-ancestors、child-src等指令构建多层防御,确保通信可控、可验证,从而有效防范iframe相关攻击。
-
HTML5中保存音频文件有五种方式:一、用<audio>标签加载网络音频;二、用localStorage存Base64短音频;三、用IndexedDB存ArrayBuffer格式音频;四、用CacheAPI缓存HTTP音频响应;五、用FileSystemAccessAPI写入本地磁盘。
-
Map和Set是解决对象局限的专用工具:Map支持任意类型键、保持插入顺序、无原型污染、原生size属性;Set自动去重、O(1)查询、正确处理NaN、强调存在性而非索引。
-
实现提示气泡需结合HTML与CSS,通过定位和伪元素创建箭头;2.使用.tooltip容器和.tooltip-text提示框结构,配合:default隐藏、:hover显示;3.利用::after伪元素及透明边框形成三角箭头,调整方位可支持多方向;4.添加过渡动画提升体验,控制层级避免遮挡。
-
JavaScript动画核心是定时更新样式属性并依赖重绘,首选requestAnimationFrame;示例中通过递归调用animate函数,每次更新transform的translateX值实现元素水平移动。