-
JavaScript的OOP基于原型机制,ES6的class是构造函数+原型的语法糖;需用constructor初始化,通过new创建实例并建立原型链;子类用extends继承、super调用父构造器;传统函数构造器写法更底层但原理相同。
-
应优先使用语义化button元素;其次可选inputtype="button";表单内用type="submit"/"reset";均需用addEventListener绑定点击事件,并确保键盘可访问性。
-
video元素原生支持空格键播放/暂停,但需添加tabindex="0"使其可聚焦;方向键快进/音量调节需手动监听keydown事件并阻止默认行为;移动端和Safari存在focus兼容性问题,需结合muted、playsinline等策略确保快捷键生效。
-
JavaScript内存泄漏指本该回收的内存未被GC释放,导致堆内存持续增长、页面卡顿甚至崩溃;常见原因包括意外全局变量、未清理事件监听器、未清除定时器、闭包持有大对象及DOM僵尸引用,需通过ChromeMemory面板检测并结合严格编码习惯预防。
-
flex-basis定义flex项目在主轴方向的初始大小,优先级高于width,常用取值有像素、百分比、auto和0;当与flex-grow、flex-shrink结合时,可精确控制空间分配,如实现等宽布局或固定侧边栏+自适应主区,设置为0可忽略内容尺寸并按比例分配剩余空间。
-
在Vue中动态插入HTML需用v-html指令渲染安全的HTML字符串,或配合v-pre跳过编译、用计算属性预处理、render函数构造VNode、mounted中操作innerHTML。
-
try...catch捕获同步错误及Promise构造函数内立即抛出的错误,Promise.catch()专用于处理Promise链中的异步拒绝;前者作用于块级同步上下文,后者依赖Promise状态冒泡机制。
-
CSSGrid固定宽度下fr错位的根源是“可用空间”受外部约束影响,解决关键是用max-width替代width、避免fr与像素混用、检查父容器和子项样式,并采用minmax(0,1fr)等弹性方案。
-
伪类选择器通过冒号定义元素状态或位置,实现无需类名的灵活样式控制。常用如:hover、:focus、:active用于交互反馈;:first-child、:last-child、:nth-child(n)按位置匹配子元素;:not(selector)排除特定元素;:checked处理表单选中状态。可链式组合如a:hover:focus,需注意LVHA顺序避免覆盖,且部分伪类受限于元素类型或浏览器兼容性,尤其IE支持差,移动端:hover行为异常,合理使用可减少HTML冗余并提升语义与交互体验。
-
快速入门JavaScript的关键是先写出能运行的小功能,通过console.log、修改页面内容和弹窗获得即时反馈,再聚焦操作元素、响应点击、存储数据三件小事,边抄边改现成例子建立动手确定感。
-
外联CSS是将样式代码从HTML中分离,单独存放在.css文件并通过<link>标签引入,实现结构与样式的分离。首先创建CSS文件(如style.css)并写入样式规则,然后在HTML的<head>中使用<linkrel="stylesheet"href="文件路径">引用该文件。这种方式使代码更清晰、易维护,并支持浏览器缓存以提升性能。随着项目扩大,应采用模块化组织方式,如按base.css(基础样式)、layout.css(布
-
通过link标签的media属性可按屏幕宽度、设备类型、分辨率和方向加载不同CSS文件,实现响应式设计。1.用max-width和min-width针对移动和桌面设备分别加载mobile.css和desktop.css,减少不必要的资源下载;2.使用media="print"为打印场景加载print.css,优化打印效果;3.通过device-pixel-ratio或min-resolution匹配高分辨率屏幕,加载high-res.css提升Retina显示质量;4.利用orientation区分横屏与
-
WebWorkers是浏览器的多线程API,允许JavaScript在后台线程运行,避免主线程阻塞。它通过postMessage与主线程通信,不可操作DOM,适用于处理大数据、图像编码等密集计算任务。以计算斐波那契数列为例,可将耗时逻辑放入独立Worker文件,主线程创建Worker实例并发送数据,完成后接收结果更新UI。使用时需注意数据序列化开销、减少频繁通信、及时终止Worker释放资源,还可通过importScripts加载外部脚本。优化建议包括批量传递数据、采用BlobURL减少依赖,复杂场景可用
-
答案:通过HTML的video标签设置autoplay、muted、loop属性实现自动循环播放,用CSS将其固定定位并铺满屏幕作为背景,结合JavaScript处理播放兼容性问题,并提供静态图降级方案确保多设备适配。
-
答案:HTML中添加水印需借助CSS或JavaScript实现,核心方法包括CSS背景图、伪元素和JavaScript动态生成。首先使用CSS背景图可简单稳定地平铺水印,适合固定图案;其次利用伪元素::before或::after可创建无额外DOM的文字水印,灵活性高;最后通过JavaScript可动态生成含用户信息的水印,增强防盗与追踪能力。三种方式均依赖定位、透明度和指针事件控制,确保水印不影响交互。