-
ArrayBuffer用于底层内存操作,需通过视图读写,适合精细控制;Blob为不可变二进制对象,常用于文件传输。1.ArrayBuffer是固定长度的二进制缓冲区,通过TypedArray或DataView访问数据,适用于WebAssembly、WebSocket等场景。2.Blob表示不可变的原始二进制数据,可指定MIME类型,常用于文件上传下载、canvas导出图片。3.两者可相互转换:ArrayBuffer转Blob使用newBlob([buffer]),Blob转ArrayBuffer调用blo
-
JavaScript的sort()默认按字符串Unicode码点排序而非数值大小,需传入比较函数实现数值或对象属性排序,且为原地稳定排序(ES2019起),建议拷贝数组再排序以避免修改原数组。
-
CSS通过“选择器-属性-值”模式控制网页样式,核心包括盒模型(content、padding、border、margin)影响元素空间与定位,display属性(flex、grid)实现现代布局;文本与颜色属性提升视觉表达;结合媒体查询与相对单位(rem、vw、vh)实现响应式设计。
-
:hover伪类可作用于任意元素但需兼顾兼容性与可访问性,background-color需配合background简写覆盖图像,transition应限定属性并写在基础样式中,优先级取决于选择器特异性而非伪类本身。
-
:hover背景色不生效?1.检查选择器是否正确,确保类名或标签名匹配;2.用开发者工具查看样式是否被覆盖,如有则提高优先级或加!important;3.清除背景图或用background简写;4.确保元素可见且未被遮挡,避免display:none等问题。
-
box-shadow动画必须使用数值型参数,inset等关键字无法渐变,多层阴影需严格保持参数结构一致,否则动画失效或卡顿;推荐用filter:drop-shadow()替代以提升性能和兼容性。
-
JavaScript无法直接读写本地文件系统,需通过FileAPI在用户主动选择文件后读取内容、获取元信息或配合BlobURL实现预览下载;核心是用户触发与浏览器沙箱内处理。
-
Mongoose中定义了ref的字段(如student、subject、classroom)不会自动展开为实际数据,必须显式调用.populate()才能获取被引用文档的完整内容。
-
若HTML源码被混淆,可通过五种方法解析:一、追踪JS执行流程并查看渲染后DOM;二、提取并手动执行嵌入式解密逻辑;三、禁用JavaScript查看原始响应;四、用抓包工具捕获未加密HTTP响应;五、反编译分析WebAssembly解密模块。
-
XMLHttpRequest需校验readyState===4且status>=200,fetch应配合AbortController实现超时控制,DOM更新须防XSS、事件丢失及内存泄漏,实际项目需统一处理loading、错误与防重提交。
-
WebSocket通过持久化全双工连接实现低延迟实时通信,解决了HTTP轮询效率低的问题。基于浏览器原生支持与ws库可快速搭建双向交互系统,适用于聊天、通知等场景。通过广播机制实现多客户端消息分发,并借助心跳检测维护连接健康,结合鉴权与集群可扩展至生产环境。
-
JavaScript可开发跨平台桌面应用,Electron结合Chromium与Node.js实现系统级功能,支持文件操作、通知、自动更新等,典型应用有VSCode、Slack;Neutralinojs以更轻量方式调用系统Web引擎,适合工具类应用,安装包小于10MB;需注意关闭渲染进程Node集成防XSS、避免远程内容、优化IPC通信与窗口管理,确保安全与性能。
-
text-align:center只对行内内容有效,不影响块级子元素位置;line-height垂直居中仅适用于单行文本且需固定高度;可靠居中应优先使用flex或grid。
-
使用transition和animation可实现CSS透明度渐变,hover时通过transition平滑改变opacity实现淡入淡出,自动循环动画则用@keyframes定义关键帧并设置infinite循环,多个元素交错出现可通过animation-delay控制延迟,配合forwards保持最终状态,注意opacity影响整体元素,性能敏感场景建议优化或使用rgba替代。
-
应改用HSL模型调高饱和度与亮度,HSL中S建议60–85%、L建议55–75%,并可用hsla()叠加透明度(如0.92)增强通透感,避免alpha过低导致沉闷。