-
组合式继承最常用:用构造函数继承实例属性(避免引用共享),用原型链继承方法(实现复用),需调用Parent.call(this)并设置Child.prototype=Object.create(Parent.prototype)且修复constructor。
-
JavaScript设计模式是解决常见工程问题的可复用结构方案;单例靠延迟初始化+闭包/静态属性拦截实现唯一实例,工厂用于隔离创建逻辑变化点,模块模式侧重闭包封装私有状态与接口暴露。
-
需用浏览器媒体捕获API实现摄像头调用:一、用getUserMedia获取视频流并绑定video;二、用canvas截帧转图片;三、用MediaRecorder录制视频;四、处理权限与设备异常;五、适配移动端横竖屏及镜像。
-
JavaScript无内置安全边界,所有安全依赖开发者对环境、数据流和信任边界的清醒认知;浏览器中JS仅有沙箱限制而非特权,易受XSS、CSRF等攻击,需严格防范输入、凭证、第三方脚本及CSP配置。
-
cubic-bezier()函数通过定义三次贝塞尔曲线控制动画速度,接受四个参数cubic-bezier(x1,y1,x2,y2),x范围为0-1,y可超出,用于创建如弹性或缓动效果,应用于transition-timing-function或animation-timing-function属性,可通过开发者工具调试并优化性能。
-
HTML5离线缓存无法真正加密,因前端无可信执行环境,密钥必然暴露;应避免缓存敏感数据,优先采用服务端加密+短时效密钥派生,结合身份认证与权限控制保障安全。
-
使用CSStransition优化性能需减少重排与重绘,优先对transform和opacity等可合成属性进行动画,避免操作width、height等触发重排的属性;通过will-change或translateZ(0)启用硬件加速,将元素提升为独立图层由GPU处理;控制transition触发频率,结合pointer-events、防抖或节流防止动画堆积;简化DOM结构,避免深层嵌套导致的性能开销,合理利用开发者工具检查合成层,确保动画流畅高效。
-
Symbol是JavaScript中用于创建唯一、不可变值的原始类型,专为解决属性名冲突和实现私有键设计,具备唯一性、不可枚举性,支持全局注册(Symbol.for)及内置协议钩子(如Symbol.iterator)。
-
展开运算符(...)可将数组或对象展开为独立元素,用于函数传参(如Math.max(...[1,3,2]))、剩余参数收集(...rest)、数组合并([...arr1,...arr2])和对象扩展({...obj1,...obj2}),支持浅拷贝与参数简化,提升代码简洁性与灵活性。
-
可采用Ruffle模拟器、SWF转HTML5Canvas、本地FlashPlayer、Lightspark引擎或导出为GIF/MP4五种方案实现SWF在HTML5环境的兼容播放。
-
line-height无法直接过渡,因其是CSS规范定义的离散型属性,无中间插值;可行方案包括用max-height模拟、transform:scaleY()缩放或JavaScript逐帧动画。
-
HTML5.1是HTML5的小步迭代,修复缺陷、废除<hgroup>、新增<dialog><details><summary><picture><main>等实用标签,并强制rel="noopener"提升安全。
-
HTML5建模中外部图片纹理不显示的主因是路径错误、跨域限制或纹理初始化时机不当;Three.js中TextureLoader静默失败、未设img.crossOrigin、未置material.needsUpdate、尺寸非2的幂或格式不支持均会导致黑屏或留白。
-
答案:推荐优先使用扩展运算符合并对象,因其语法简洁、不修改原对象且可读性强;若需兼容老浏览器则选用Object.assign()。两者均为浅合并,深层合并需借助其他方法。
-
Android和iOS的<inputtype="date">行为差异显著:安卓用可有限定制的原生选择器,iOS强制滚轮picker且CSS无效;iOSonchange仅确认后触发、oninput滚动即触发;清空时安卓返回""、iOS可能为null或旧值;required校验iOS不拦截;推荐统一监听onchange、显式校验、避免依赖样式。