-
惰性求值通过延迟计算提升性能,核心是仅在需要时执行。JavaScript可用函数封装、生成器或自定义链式结构实现,如Lodash的chain方法,避免中间结果开销,适用于大数据与复杂运算场景。
-
小米电脑的HTML5支持取决于浏览器及其版本,需通过开发者工具查DOCTYPE和语义化标签初步判断,并用JavaScript检测localStorage、canvas、geolocation等API运行时可用性,Modernizr可批量检测但不提供polyfill。
-
本文详解因事件冒泡导致模态框关闭按钮(span)无法正常隐藏弹窗的问题,通过event.stopPropagation()阻断点击事件向上传播,并修正DOM属性赋值错误,确保图片预览功能稳定可用。
-
逃逸分析是JavaScript引擎优化技术,用于判断对象是否仅在函数内使用,若未逃逸可栈分配或标量替换以减少GC;如obj被闭包引用则需堆分配,编写作用域小、少闭包的代码利于优化。
-
HTML5原生video标签支持五种点播实现:一、基础内嵌播放;二、JS动态切换视频源;三、source元素多格式兼容;四、自定义控件精准跳转;五、localStorage断点续播。
-
掌握CSS定位关键在于理解四种模式的行为逻辑:static不脱离文档流;relative占位且偏移基于自身;absolute脱离流并参照最近已定位祖先;fixed脱离流且相对视口固定;sticky是两者的结合体。
-
CSS引入顺序直接影响样式覆盖,当特异性和重要性相同时,后引入的规则生效。通过合理规划重置、基础、组件到主题样式的加载顺序,结合预处理器或模块化方案,可有效避免冲突,提升可维护性与调试效率。
-
用grid-template-areas配合媒体查询可实现图片与文字在不同屏幕下的布局换位:小屏竖排(text在上、img在下),大屏横排并调序(img在左、text在右),HTML结构保持语义顺序不变,仅通过CSS控制视觉位置。
-
ES6class是函数和原型链的语法糖,继承仍基于[[Prototype]]链:①B.prototype.[[Prototype]]=A.prototype;②B.[[Prototype]]=A;③子类constructor必须先调super()初始化this。
-
移动端fixed定位问题主要由浏览器对视口和键盘处理不一致引起,需结合场景适配:1.键盘弹出错位时监听focus/blur及visualViewport动态调整定位;2.iOS粘滞问题通过-webkit-overflow-scrolling:touch优化滚动,或用transform模拟固定;3.老旧安卓浏览器降级为absolute+JS定位,推荐使用Vant等框架组件;4.避免100vh异常,改用height:100%或动态CSS变量--vh适配真实视口。
-
响应式浮动布局通过float和mediaqueries实现多屏适配,小屏垂直堆叠,大屏并排显示,需清除浮动避免塌陷,配合viewport等优化移动端体验。
-
子菜单显示不全的主因是父容器overflow:hidden或定位上下文未正确建立;应移除溢出隐藏、设父项position:relative、调整top/left/z-index,并在响应式时适配定位与宽度。
-
使用linear-gradient()函数可实现CSS背景渐变,通过设置方向和颜色停靠点创建平滑过渡效果,支持多色、角度、位置控制及重复渐变,常用于背景、按钮等场景。
-
实现CSS渐变文字的核心技巧是使用background-clip:text与color:transparent结合。1.将文字设为透明;2.为文字添加渐变背景;3.使用background-clip:text使背景仅在文字区域内显示。这种方式依赖于background-image接受渐变函数,而color属性无法直接设置渐变。为确保兼容性,需添加-webkit-前缀,也可借助Autoprefixer自动处理。此外,还可拓展玩法,如使用图片纹理、动态背景、结合text-shadow或filter等效果,增强
-
HTML5本身不提供物理碰撞能力,“穿模”源于未正确配置Three.js与Cannon.js等物理引擎的协同:需为模型创建CANNON.Body并绑定合适形状,每帧同步position与quaternion,避免高速穿越、高模直用Trimesh及未调用world.step()等常见错误。