-
String.prototype.slice()是纯函数式方法,不修改原字符串而返回新字符串,支持正负索引定位,结合indexOf()/lastIndexOf()可安全裁剪路径,且原始路径始终不变。
-
样式被划掉是因为specificity权重低于其他规则,需对比权重值(如0,1,1,0);CSS层叠还受来源顺序影响,后加载样式优先;提权应优先用精准选择器而非!important;继承属性不参与优先级计算,需在Computed面板确认是否真被应用。
-
Phaser适合2D游戏开发,Three.js用于3D视觉效果,Babylon.js支持完整3D游戏框架,PixiJS专注高性能2D渲染,根据项目类型选择引擎可降低开发成本。
-
JavaScript中不存在“PrototypeMasking”这一标准概念;真正私有需用闭包、Symbol(弱私有)或ES2022+的#私有字段,原型操作无法实现可靠私有性。
-
JavaScript中ifelse易错三点:一是误用赋值=代替比较==或===;二是忽略隐式转换导致0、''等假值误判;三是单行无花括号时ASI失效致逻辑错误。
-
JavaScript中extends的底层本质是通过静态修改子类prototype的[[Prototype]]指向父类prototype,并设置子类构造函数的[[Prototype]]指向父类构造函数,强制super()调用以初始化父类实例。
-
能,focus-within只能选中最近的可聚焦祖先元素,该祖先不能被tabindex="-1"或display:none等属性阻断焦点冒泡路径。
-
Array.prototype.splice()是同步就地操作,单次调用完成删除、插入、替换,形成“逻辑原子”更新,避免中间态暴露;但非真正原子,多处并发调用需外部协调,且框架中需注意响应式触发机制。
-
flex:1能撑满剩余空间是因为它是flex-grow:1、flex-shrink:1和flex-basis:0的简写,其中flex-basis:0使元素初始宽度为0,剩余空间按比例分配。
-
JavaScript对象属性遍历顺序严格遵循ES2015规范:先整数索引升序,再字符串键插入顺序,最后Symbol键插入顺序;for...in和Object.keys()仅遍历可枚举字符串键且不保证规范顺序;Symbol属性不被JSON.stringify序列化。
-
JavaScript模板引擎通过解析含占位符的模板并替换为实际数据生成HTML,核心原理是将模板编译为可执行函数以提升性能,如使用正则匹配{{name}}替换变量;高级引擎支持条件、循环等逻辑语法,编译时转为对应JavaScript语句,并通过抽象语法树处理嵌套结构;同时内置HTML转义机制防止XSS攻击,确保输出安全。
-
align-items:stretch默认生效,但常因子元素height/min-height设置、box-sizing为content-box、内部flex未设height:100%、图片未约束、跨行span或align-self覆盖等原因导致视觉不齐,需综合调整。
-
CompressionStream不能直接压缩DOM状态快照,需先采集(如outerHTML、scroll、input值等)、再序列化为JSON并转为Uint8Array流,最后通过CompressionStream压缩传输,服务端须支持gzip解压且正确设置Content-Encoding和Content-Type。
-
按钮悬停时旋转可通过CSS实现:首先定义@keyframesrotateAnimation从0deg到360deg,再通过:hover触发animation:rotateAnimation0.6sease-in-outinfinitealternate,配合transition确保过渡平滑,最终实现流畅的旋转效果。
-
color-mix()必须显式指定颜色空间(如insrgb)并用小数(如0.5)而非裸百分比(如50%)表示权重;不支持calc()等函数动态计算权重,仅限静态值。