-
JavaScript的class是原型的语法糖,核心在于理解原型链行为复用与实例状态隔离;new通过构造函数初始化this并链接原型,Object.create()仅手动设原型且不执行构造逻辑;static属于类本身,#私有字段仅存于实例;子类必须先调用super()以初始化this和原型链。
-
最直接实现导航栏左右分布用justify-content:space-between,需父容器display:flex且子元素分左右容器包裹;居中主菜单宜用margin:auto;响应式优先flex-wrap+order;避免float或absolute。
-
splice方法会直接修改原数组并返回被删除元素组成的数组;1.splice语法为array.splice(start,deleteCount,item1,...),start为起始索引,deleteCount指定删除元素个数,后续参数为插入的新元素;2.splice与slice的核心区别在于splice是“修改者”会改变原数组,而slice是“复制者”不修改原数组仅返回新数组;3.splice常见应用场景包括根据索引删除、插入或替换元素,但存在修改原数组导致副作用、循环中删除元素需注意索引变化、性能开销
-
WebGL是浏览器中基于OpenGLES的GPU加速JavaScript图形接口,需手动管理顶点、着色器、缓冲区等底层资源,区别于CPU渲染的Canvas2D,适用于高性能3D应用;Three.js等库是其高级封装,但调试优化仍需理解WebGL原理。
-
本文介绍一种更简洁、可维护性更强的方案:使用原生<inputtype="radio">替代多个互斥的checkbox,并结合CSS类控制关联子表单的显隐,避免冗余ID绑定与重复事件监听。
-
当前TV浏览器多数已原生支持HTML5,无需升级;需确认内核版本(WebKit/610+或Chrome/90+)、禁用兼容模式、更新系统固件,并针对具体API(如video、MSE、WebGL)分层验证。
-
使用rgba()可精确控制颜色透明度,仅影响指定属性,而opacity会影响整个元素及其子元素。rgba(0,0,0,0.5)表示半透明黑色,常用于背景、阴影等场景,避免内容模糊,提升设计灵活性。
-
尾调用优化(TCO)在JavaScript中基本不可用,所有主流引擎均已放弃支持,符合尾调用语法的函数仍会栈溢出;尾调用要求return后直接跟纯函数调用,且需严格模式。
-
JavaScript双向绑定通过响应式系统实现数据与视图自动同步:Vue2用Object.defineProperty劫持属性的get/set,配合依赖收集与派发更新;Vue3改用Proxy代理整个对象,支持动态属性与数组索引赋值;视图层通过监听input等事件并赋值触发数据更新,形成闭环。
-
改完HTML5文档类型后链接失效,主因是触发浏览器严格模式,使base标签、相对路径解析和服务器Content-Type问题暴露。需检查base标签、修正../层级、确保服务器返回text/html。
-
回调函数未被取代,仍用于事件监听等场景;但Promise和async/await通过链式调用、统一错误处理及同步风格语法,显著改善了回调地狱、可读性差与错误难捕获等问题。
-
JavaScript事件响应由事件循环与队列决定:交互事件入队,调用栈空时执行;宏任务与微任务分层处理;动态元素需委托监听;stopPropagation与preventDefault作用不同;事件对象仅在回调中有效。
-
浮动容器中混用浮动与非浮动子元素会导致布局错乱,因浮动元素脱离文档流;解决方式有三:1.非浮动子项加clear属性;2.父容器用伪元素清除浮动;3.将非浮动项移至独立容器并清浮。
-
JavaScript垃圾回收采用标记-清除机制,从根对象出发标记可达对象,未标记者被清除;常见泄漏源包括未解绑事件监听器、未清除定时器、闭包过度捕获及缓存未释放,需用ChromeMemory面板分析堆快照定位悬空引用。
-
前端埋点通过在交互节点插入代码采集用户行为数据,主要分为代码埋点、可视化埋点和无痕埋点三类;通过JavaScript监听事件并上报数据,常用sendBeacon确保数据送达,结合data-track属性实现自动采集,需注意性能优化、数据脱敏、字段规范及小流量验证,以保证准确性与可维护性。