-
浏览器端JavaScript无法直接连接数据库,必须通过后端API进行交互;2.Node.js环境下的JavaScript可通过数据库驱动或ORM/ODM直接连接数据库;3.安全原因、技术限制和架构设计决定了前端不能直连数据库;4.实践中Node.js连接MySQL可用mysql2或Sequelize,PostgreSQL可用pg或TypeORM,MongoDB可用mongodb驱动或Mongoose;5.构建安全后端API需实现认证授权、输入验证、HTTPS加密、错误处理、速率限制、敏感信息隔离及COR
-
最有效方案是使用Cross-Origin-Resource-Policy:same-origin响应头,现代浏览器会静默拦截跨站CSS加载;需配合Referer检查兜底旧浏览器,并清除缓存确保新策略生效。
-
WeakMap和WeakSet通过弱引用避免干扰垃圾回收,适用于缓存、私有数据存储和对象标记场景,防止内存泄漏。
-
BroadcastChannel是最轻量、原生且兼容性良好的跨标签页状态同步方案,它通过主动广播机制实现同源窗口间实时通信,支持复杂数据类型,避免localStorage事件的延迟、自触发缺失及Safari私密模式失效等问题。
-
new操作符执行四步:创建空对象、绑定原型、执行构造函数、返回正确值;模拟需检查函数类型、用Object.create设置原型、call执行并判断返回值类型。
-
正则性能差异核心在于回溯量:贪婪模式易致指数级回溯(如/a+b+c/在失败时),非贪婪虽回溯逻辑不同,但成功匹配时贪婪更快;优化关键为避免嵌套量词、使用原子组或明确边界。
-
position:relative本身不引起偏移,必须配合top/right/bottom/left才生效;它建立新定位上下文、不脱离文档流、影响后续布局且支持z-index。
-
getSelection()返回空Selection实例是规范行为,因页面未聚焦或选区在跨源iframe中;需确保元素focus、同源下访问iframe.contentDocument.getSelection(),并监听document上的selectionchange事件。
-
答案:height动画跳跃因auto非数值无法渐变,可用max-height配合transition模拟平滑展开,通过设置足够大的max-height值并结合overflow:hidden实现视觉过渡,兼顾性能与兼容性,适用于多数折叠动画场景。
-
HTML5语义化布局通过header、nav、main、article、aside、footer等标签明确页面结构,提升可读性、SEO和无障碍访问,结合CSS实现清晰、响应式的网页布局。
-
三个点逐帧跳动效果本质是错开节奏的垂直位移,需用@keyframes定义单点动画并为每个点单独设置animation-delay,配合伪元素生成点、rem/ch单位响应式适配及GPU加速优化。
-
ES2021起JavaScript支持数值字面量中用下划线作分隔符,提升可读性而不改变值;适用于十进制、二进制、八进制、十六进制及科学计数法,但不可在开头、结尾、连续出现或紧邻前缀、小数点、指数符号。
-
overflow:hidden对多级嵌套失效是因为它只作用于自身形成BFC的元素,中间未触发BFC的容器会导致溢出“穿透”;需确保真正截断的那层明确设置该属性,并注意flex/grid中min-width:auto、绝对定位脱离文档流及多层嵌套的性能问题。
-
HTML中连续空格会被浏览器合并为一个,需用 、 、 等实体或CSS实现多空格效果; 防折行, 窄空格微调对齐, 全角空格适配中文排版。
-
clear:both下方空白异常,根本原因是该元素或其父容器被position:absolute/fixed拉出文档流,导致清除失效;应检查Computed中position值,确认是否在标准流内,并优先用display:flow-root创建BFC从源头解决。