-
表单防重复提交需三重保障:前端禁用按钮防误点、fetch+AbortController中止并发请求、服务端幂等性校验(如idempotency-key)。三者缺一不可,仅前端限制不可靠。
-
HTML中font-size最可靠方式是CSS属性而非废弃的<font>标签;推荐使用rem单位配合viewport设置和根元素重置,兼顾响应式与可访问性,并注意font-size-adjust等属性优化多字体渲染一致性。
-
Firefox自2020年起彻底禁用document.execCommand,调用即抛TypeError错误;替代方案为手动DOM操作或使用tiptap、slate等编辑器库,加粗和插入链接需自行创建strong/a元素并操作选区。
-
最稳妥的位置是</body>前——此时HTML已解析完,document.getElementById才不会返回null;放<head>需加defer或用DOMContentLoaded包裹,外链脚本更利于缓存与维护。
-
iOSSafari全屏失效主因是video标签缺失playsinline和webkit-playsinline属性,且需绑定用户手势调用requestFullscreen(),同时排除父容器CSS限制、插件配置干扰及WebView策略影响。
-
最基础的跳转是<ahref="xxx">点击</a>,但易因路径错误、协议缺失或目标页不存在而失败;应优先用绝对路径(外链带协议,内链用根相对路径),避免空href、#或javascript:void(0)等副作用写法,传参需URL编码,SPA中须用框架路由组件而非原生a标签。
-
Vitest比Jest更轻量、启动快、原生支持ESM/TS,新项目优先选;Jest适合大型遗留项目;测试应从纯函数、条件工具函数、逻辑明确的hook入手,避免过度mock;注意模块mock写法、异步测试await处理及React环境配置。
-
微信禁止加载本地HTML文件,必须通过HTTP/HTTPS服务器访问;开发可用python-mhttp.server,上线需托管至GitHubPages等支持HTTPS的平台,并严格配置JS-SDK签名与安全域名。
-
使用Flexbox或Grid可实现元素水平与垂直对齐,如Flexbox通过justify-content和align-items居中,Grid用place-items:center,而传统float不支持垂直浮动,仅推荐用于文本环绕。
-
JavaScript是独立于Java的浏览器脚本语言,核心是实现网页交互;初学者应优先掌握console.log()调试、const/let声明、addEventListener()绑定事件和fetch()异步请求。
-
split()方法有四大关键细节:空字符串分隔符逐字符拆分(IE8不支持);分隔符未匹配时返回原字符串单元素数组;正则捕获组内容会插入结果数组;limit参数限制长度,0得空数组,负数等同不限制。
-
按钮点击没反应的首要原因是onclick未在正确环境下执行,如浏览器禁用JS或页面以file://协议打开;其次检查DOM是否加载完成、ID拼写是否一致、按钮是否被遮挡或设置了pointer-events:none;表单内按钮需明确type属性并用preventDefault()阻止默认刷新。
-
script标签最稳妥的位置是放在</body>之前;放在head中需加defer或async,内联脚本不宜用于生产环境,外部脚本更利于缓存与维护,type属性影响执行行为,动态插入需注意加载时机与跨域配置。
-
模板字符串是JavaScript中用反引号包裹、支持表达式插值、多行书写和标签函数的字符串语法,相比传统拼接更安全、清晰、易维护,且无运行时性能劣势。
-
首先使用JavaScript的navigator.geolocation获取用户位置,再结合GoogleMaps或高德地图API将坐标展示在地图上,支持单次定位与持续追踪,需注意权限处理、错误回调及国内地图替代方案的选择。