-
Base64编码非加密而是格式转换,用于安全传输二进制数据;需用TextEncoder+Uint8Array处理Unicode字符再btoa,解码则用atob+Uint8Array+TextDecoder还原。
-
ArrayBuffer用于底层内存操作,需通过视图读写,适合精细控制;Blob为不可变二进制对象,常用于文件传输。1.ArrayBuffer是固定长度的二进制缓冲区,通过TypedArray或DataView访问数据,适用于WebAssembly、WebSocket等场景。2.Blob表示不可变的原始二进制数据,可指定MIME类型,常用于文件上传下载、canvas导出图片。3.两者可相互转换:ArrayBuffer转Blob使用newBlob([buffer]),Blob转ArrayBuffer调用blo
-
::before和::after必须设置content才生效,否则不可见;适用于添加装饰图标、纯CSS图形、清除浮动及自动引号等场景,且需注意定位上下文与display设置。
-
微任务是JavaScript中优先级最高的异步任务,总在当前宏任务结束后立即执行全部队列;常见微任务有Promise.then/catch/finally、MutationObserver、queueMicrotask()及Node.js的process.nextTick;易误认的宏任务包括setTimeout(0)、requestAnimationFrame和setImmediate;微任务递归会导致页面卡死,应改用setTimeout或requestAnimationFrame避免。
-
能,但<link>引入的CSS总是全局生效;真局部需作用域隔离,如加父级前缀、scoped、CSSModules或ShadowDOM。
-
不可变性是持久化数据结构的核心基础,持久化通过创建新版本保留旧状态,依赖不可变性实现共享与安全并发。
-
在Vue中,直接使用checked属性或:checked绑定无法控制表单控件的初始选中状态;必须通过响应式数据+v-model实现双向绑定,才能让复选框默认“勾选”。
-
打印样式影响正常页面是因为未用@mediaprint隔离,应将所有打印样式置于@mediaprint块内,确保仅打印时生效,并正确设置link的media="print"属性。
-
用canvas实现图片帧动画最可靠的方法是手动控制帧切换:预加载所有帧(或雪碧图),用requestAnimationFrame驱动,通过drawImage截取并绘制单帧,动态计算帧坐标,避免依赖GIF原生解析。
-
响应式多媒体布局核心是让内容自适应容器,图片通过max-width:100%和height:auto实现等比缩放;2.高清显示需结合srcset和<picture>元素按设备加载合适资源;3.视频和iframe使用“宽高比盒子”技术,利用padding-bottom和绝对定位保持比例;4.object-fit用于控制图片填充模式,避免变形;5.Flexbox和Grid则提升复杂布局能力,实现自动换行、弹性伸缩与二维网格排列,确保多媒体在不同屏幕下视觉一致且美观。
-
是,通配符选择器*会拖慢页面渲染,主要影响CSS匹配和样式计算,尤其在DOM节点多、深度大时;它阻止浏览器优化,还降低同级选择器匹配效率。
-
ES6class本质是构造函数的语法封装,仍基于原型链继承;Babel将其编译为function与Object.setPrototypeOf逻辑;super()必须首行调用以绑定this原型链,不可省略。
-
马赛克还原本质是不可逆的视觉欺骗,只能通过Canvas像素操作(getImageData/putImageData)对实时绘制的马赛克块进行插值或渐变过渡以削弱色块感,无法恢复原始像素。
-
当前页高亮必须通过HTML类名(如class="active")配合CSS实现,:hover仅用于悬停交互反馈,:active仅用于点击瞬间视觉反馈,二者均无法持久标记当前页面。
-
正确做法是为表单控件统一设置width:100%;max-width:400px;box-sizing:border-box,并补充-webkit-appearance:none、margin:0和vertical-align:middle;textarea不可遗漏,字号宜用rem或clamp()响应式控制。