-
直接渲染10万条数据会卡死浏览器,因DOM节点超量引发内存飙升与高频重排;虚拟滚动仅渲染可视区+缓冲区节点,用占位层撑高滚动条、transform定位内容,避免同步布局计算。
-
screen.width和screen.height返回设备主显示器的物理像素总宽高,如1920×1080,不随缩放、窗口变化而改变,且需配合devicePixelRatio才得真实物理像素。
-
focus()失效主因是元素不可聚焦、DOM未就绪或浏览器拦截;需确保元素可聚焦(原生标签或tabindex≥0)、在DOMContentLoaded后调用、并在用户交互中触发聚焦。
-
HTMLaudio元素不支持平滑淡入淡出,必须用WebAudioAPI:需用户手势创建AudioContext,用createMediaElementSource接入音频,所有时间计算基于ctx.currentTime。
-
HTML5中不存在<nativevideo>标签,唯一合法的视频标签是<video>;所谓“nativevideo”指浏览器原生播放能力,需正确使用<video>及其属性(如muted、playsinline)并注意跨域、编码兼容性等问题。
-
必须区分三类全局污染:Program级var声明、隐式赋值(a=1)、显式window.xxx挂载;ESM/CJS模块需结合导入关系分析;替换var为let/const会破坏typeof检测、for循环闭包及UMD环境判断,且Babel默认不转顶层var。
-
viewport-fit=cover是启用env()安全区变量的前提,缺失时iOSSafari中env(safe-area-inset-*)恒为0px;必须在metaviewport中显式声明且不可动态插入,需配合fallback值或env(var,fallback)语法及@supports检测确保兼容性。
-
暂时性死区(TDZ)指块级作用域中从进入作用域到let/const声明执行前变量不可访问的状态;此时读写或typeof检测均抛出ReferenceError,且仅存在于含let/const的最小封闭块内。
-
@warn和@error是保障CSS参数安全的核心守门员,需编译链路透出、开发者关注、CI捕获;@warn用于可降级的参数误用(如单位混用、过时调用),@error用于必须熔断的关键错误(如非法断点、变量缺失)。
-
关键不是“有没有滚”,而是“当前滚动位置是不是0”;应统一用Math.max(window.pageYOffset,document.documentElement.scrollTop)检测,避免依赖document.body.scrollTop,并注意自定义滚动容器需监听其scrollTop而非window。
-
1、可通过手机浏览器直接打开存储中的HTML文件预览;2、使用支持HTML的应用如SoloLearn或Acode编辑并实时预览;3、在电脑启动HTTP服务器,手机同网络下通过IP地址访问测试网页。
-
答案:前端水印通过叠加文字或图形保护版权,常用方案包括CSS/JS叠加、Canvas绘制、视频嵌入及增强防护。1.使用div+JS生成含用户信息的半透明网格水印;2.利用canvas绘制难删除的背景图,支持个性化内容;3.在video播放器上叠加动态位置水印防录屏;4.结合禁右键、监控全屏等措施提升安全性。水印需会话级更新,平衡警示性与体验,实现低成本高效防护。
-
手风琴用checkbox而非radio是因需支持“全部收起”,checkbox天然支持点击切换与:checked伪类闭环控制;radio无法取消选中,除非JS干预。
-
Nginx的return301必须带$request_uri,否则会截断查询参数导致跳转丢失;$uri不含参数,$host避免多域名绑定错误;私钥权限须为600且属主为nginx用户;HTTP→HTTPS重定向必须在独立80端口server块中配置,续期后需手动reload。
-
JavaScript通过事件循环实现异步并发,利用WebWorkers进行多线程计算,避免主线程阻塞,结合rAF、IntersectionObserver、requestIdleCallback等技术优化渲染性能,提升页面响应性。