-
实现前后端通信有五种基础方法:一、用FetchAPI发HTTP请求;二、通过HTML表单提交;三、用Axios库简化异步请求;四、配置本地代理解决跨域;五、用WebSocket实现实时双向通信。
-
用HSL模式精准调节亮度(L值)是提升对比度且保持配色协调的高效方法,因其分离色相、饱和度与亮度,调L不改主色调;普通文本需≥4.5:1对比度,L值差≥40较安全;微调建议:文字发灰则降L值,背景抢眼则升L值,深色模式下白色文字可微降至L=92%以减眩光。
-
typeof判断基础类型(含function、symbol),instanceof判断引用类型是否由某构造函数创建;二者解决不同层面问题,混用易致误判。
-
favicon需在<head>中用<link>声明,路径须正确且可直接访问,推荐根路径;应同时提供.ico和多尺寸.png格式,并加版本参数防缓存;真机实测各环境显示效果。
-
答案:通过HTML5属性、正则表达式和JavaScript可实现表单数字验证。使用type="number"支持原生数字输入,结合min、max、step控制范围与精度;需自定义格式时用pattern配合正则表达式,如^\d+(.\d{1,2})?$限制两位小数;为获得实时反馈,可通过JavaScript动态校验输入值,并在提交时进行最终验证;注意前端验证易被绕过,服务端必须重新校验,同时设置清晰的title提示以提升用户体验。
-
通过::picture-in-picture-waiting伪类为视频元素在进入画中画前的等待状态设置样式,如虚线边框和透明度变化,以提供视觉反馈;该伪类作用于原始video元素,与::picture-in-picture区分,后者用于已进入画中画状态时的样式;目前主要在Chromium内核浏览器支持,需注意兼容性并采用渐进增强策略。
-
CSS盒模型由内容区、内边距、边框和外边距组成,总尺寸受box-sizing影响;采用border-box可使width包含padding和border,便于布局控制。
-
可借助AdobeAnimate、FFmpeg、Swiffy离线版和Lottie+Bodymovin四种工具将Flash动画或视频转为HTML5格式:Animate导出Canvas,FFmpeg转码MP4/WebM,Swiffy转换简单SWF,Bodymovin导出AE动画为JSON并用Lottie渲染。
-
AJAX是使用XMLHttpRequest或fetchAPI实现异步通信的编程方式,核心是不阻塞JS执行;fetch基于Promise,推荐用于GET/POST请求,需注意状态码判断和响应解析;XMLHttpRequest兼容旧浏览器,需手动处理状态与数据解析。
-
:checked伪类结合+相邻兄弟选择器可实现基于复选框或单选按钮状态的视觉切换效果,如开关、手风琴菜单和内容显隐。其原理是:checked作用于选中的input[type="checkbox"]或input[type="radio"],+选择紧跟其后的兄弟元素,从而控制样式显示。例如通过#toggle:checked+label+.content控制.content的display属性实现内容切换;在折叠面板中利用max-height和transition实现动画效果。关键点包括:目标元素必须为后续相邻
-
FetchAPI是现代浏览器中基于Promise的网络请求标准,语法简洁但需手动处理状态码、凭证、超时等;与XMLHttpRequest相比,它不自动解析响应、不发Cookie、无内置超时和进度监听,需显式配置credentials、headers并配合AbortController使用。
-
hover提示框闪烁的主因是用display切换显隐导致重排,正确做法是保持DOM存在,用visibility+opacity配合transition,且transition声明在默认样式中。
-
Set可快速去重原始值,但对象需按字段用Map或filter+findIndex;NaN自动合并,-0/+0默认等价;大数据量应避免O(n²)算法,优先用Map缓存键值。
-
JSON是轻量级纯文本数据交换格式,支持字符串、数字、布尔值、null、数组、对象6种类型,不支持函数、日期、二进制等,限制包括无注释、无类型信息、无法表示循环引用和二进制数据。
-
PostCSS通过插件如postcss-preset-env或postcss-custom-properties将CSS变量转换为静态值以兼容旧浏览器,支持变量展开与保留,需注意动态变量的灵活性损失及生产环境的合理配置。