-
JavaScript继承基于原型链,ES6的class为语法糖。1.原型链继承通过子类prototype指向父类实例,实现方法共享,但引用属性共用有污染风险;2.构造函数继承利用call调用父构造函数,实现属性独立,但无法继承原型方法;3.组合继承结合两者优点,既通过call继承实例属性,又通过原型链继承方法,是传统方式中最推荐的;4.ES6Class继承使用extends和super,语法清晰,语义明确,底层仍基于原型,是现代开发首选方案。
-
纯CSS下拉菜单hover失效主因是DOM间隙导致状态中断及触屏不支持;标签页用:checked+radio实现需严格结构;:focus-within需容器可聚焦且有兼容性问题;纯CSS方案存在无障碍缺失、移动端失效等固有局限。
-
JavaScript模块打包是将多个JS及非JS资源按依赖合并转换优化为少量浏览器可运行文件的过程;它解决ES6模块的局限性,支持Loader/Plugin扩展、代码分割、TreeShaking等工程化能力。
-
overflow-wrap不生效的主因是容器未设宽度限制;需配合width/max-width、清除浮动、避免white-space:nowrap冲突,并兼容书写word-wrap。
-
使用HistoryAPI可实现单页应用无刷新跳转。通过pushState添加历史记录并更新URL,replaceState修改当前记录而不新增条目,onpopstate监听前进后退操作,结合动态内容加载即可同步页面状态与地址栏,支持浏览器导航,提升用户体验。
-
GeolocationAPI必须在HTTPS或localhost安全上下文中调用,且需用户首次交互触发;拒绝权限后不会重弹窗,须显式配置options(如enableHighAccuracy、timeout、maximumAge)以避免缓存或超时问题。
-
可通过CSS的border-style属性设为dashed实现虚线边框:一、单边用border-top:2pxdashed#333;二、四边统一用border:1pxdashedred;三、自定义用border-image+linear-gradient;四、响应式适配用@media高DPI查询加box-shadow;五、伪元素用repeating-linear-gradient模拟。
-
JavaScript沙箱是限制第三方代码权限的隔离环境,核心目标是控制其行为而非完全阻止执行,需从全局对象、函数调用、作用域和资源访问四维度隔离,常见方案包括WebWorker、iframesandbox、vm2及Proxy轻量沙箱,配置不当仍可能被绕过。
-
首先创建DynamicWebProject项目,在WebContent下添加HTML文件,接着右键HTML文件选择RunonServer并配置Tomcat服务器,最后通过localhost地址在浏览器中查看运行效果。
-
报错根源是浏览器默认将touchmove设为passive,需显式声明{passive:false}才能调用preventDefault();推荐优先使用touch-actionCSS属性控制手势,按需在特定区域启用非被动监听。
-
防抖确保连续触发后只执行最后一次,适用于搜索框输入等场景;节流则按固定间隔执行,适合滚动监听等高频事件,二者均用于优化性能。
-
menu与menuitem标签因浏览器支持差且被废弃,不推荐使用;应采用ul+li配合ARIA角色实现语义化、可访问的菜单结构。
-
border-width默认使元素变大,因width/height仅控制内容区,边框额外增加;box-sizing:border-box可让宽高包含边框和内边距;outline不占布局空间但影响视觉,需重置;动态修改border-width宜用透明边框占位或transform模拟。
-
装饰器是元编程语法糖,用于无侵入地为类、方法等添加行为。它在日志、权限、校验、缓存、事件处理和依赖注入中广泛应用。通过@log和@measurePerformance可实现日志与性能监控,避免污染业务逻辑。在Angular中,@Component、@Injectable等装饰器提供组件元数据;在NestJS中,@Controller、@Get等实现路由与依赖注入,提升代码声明性与可维护性。挑战包括兼容性、学习曲线和调试难度,最佳实践是单一职责、清晰命名、优先函数式写法、避免滥用,并逐步在团队中推广使用。
-
position:sticky的top值控制元素吸附位置,如top:20px表示距视口顶部20px时固定;margin影响元素在文档流中的初始位置和与其他元素的间距,但不改变吸附点。例如.sidebar{top:16px;margin-top:8px}时,元素先因margin下移8px,滚动至距视口16px时开始吸附,吸附后仍保持16px距离,margin持续影响布局间距。两者协同可优化视觉流,需注意父容器避免overflow:hidden导致失效。