-
类继承基于ES6的class语法,通过extends和super实现,语法简洁、可读性强,底层为原型链;组合继承结合构造函数与原型链,兼容性好但代码冗长。前者是后者的语法优化版本,现代开发推荐使用类继承,理解组合继承有助于掌握原型本质。
-
Cookie的path和domain必须显式指定且严格匹配,否则跨路径或子域无法读取或删除;path须以/开头(如path=/),domain需带前导点(如domain=.example.com),删除时path和domain必须与写入时完全一致。
-
bind创建的函数this永久绑定于绑定时指定的对象,后续调用无法更改;它固定this并预设参数,支持柯里化,多次bind仅叠加参数而不改变首次绑定的this。
-
同构渲染需分层策略、统一路由逻辑与服务端可控HTML输出;路由配置、数据预取、SEO标签、key绑定及初始状态必须严格一致,否则触发重渲染或hydration失败。
-
单例模式确保全局唯一实例,如配置对象;观察者模式实现组件解耦通信,通过事件总线通知状态变化;工厂模式统一创建相似对象,按角色生成按钮;装饰器模式动态扩展功能,如为方法添加日志和性能监控。
-
HTML气泡需防范XSS:仅允许白名单标签(strong、em、br、a且href限https?),禁用script等执行类标签及on事件;时间戳应作为子元素用margin微调对齐,禁用绝对定位;Safari需用JS而非:hover控制提示;z-index、伪元素定位、scrollHeight计算是跨端兼容关键。
-
BEM是通过命名规则将样式意图编码进类名的协作方案,而非美化CSS的技巧;其双下划线和双破折号语法支持工具链识别、避免命名冲突、保障重构安全,并需配合函数化生成与渐进式落地。
-
Autoprefixer不能直接处理SCSS文件,因为它只解析标准CSS,不识别SCSS语法(如$color、@mixin);必须先用Sass编译器转为CSS,再经PostCSS流程添加前缀。
-
通过设置flex-grow:1,子元素可在Flex布局中自动填满父容器的剩余空间,解决响应式设计中的尺寸适配问题。
-
Permissions-Policy(原FeaturePolicy)是声明式策略,通过HTTP响应头或iframe的allow属性在资源加载前限制API访问;allow属性仅作用于该iframe及其子上下文,权限需显式指定来源并用分号分隔,空格分隔已废弃,且不控制父页面行为。
-
TrustedTypes是需服务端、策略层、调用层三方对齐的强制拦截机制;必须配置CSP响应头(如require-trusted-types-for'script'),否则JS策略无效,且策略名须与CSP中声明的一致,否则抛TypeError。
-
“一键复制”卡顿主因是剪贴板API的权限、执行时机与格式处理:需用户手势同步调用,HTTPS环境,iOS13.4+才支持writeText;HTML内容须用write()配text/htmlBlob实现富文本粘贴,writeText仅支持纯文本。
-
贪吃蛇核心是坐标更新、碰撞检测、食物生成三步:用requestAnimationFrame驱动,蛇身存{x,y}数组,禁止180°掉头,撞墙/自身(从第4节起检测)/吃食物判定,食物在空闲格子中随机生成。
-
纯CSS深度按钮靠多层linear-gradient叠加实现明暗错觉:第一层tobottom垂直高光渐变,第二层toright水平阴影渐变,顺序不可颠倒,用background-size/position精准控光效;stop-color是SVG属性,CSS中应写#fff0%;:active时位移各层background-position增强按压感;IE11等旧环境用@supports降级单层渐变。
-
:checked+label不生效的根本原因是DOM顺序错误:input必须在同级label之前,因+选择器只能向后匹配;正确结构为<input><labelfor="id">,或改用<label><input></label>配合:has()或后代选择器。