-
JavaScript日期操作需警惕时区陷阱:newDate()返回本地时间,ISO字符串默认UTC解析;避免字符串解析歧义,推荐数值构造或补全时间;格式化应手动拼接而非依赖toLocaleDateString();日期加减优先用毫秒计算;相对时间显示推荐Intl.RelativeTimeFormat。
-
JavaScript模块化关键在正确使用ESM与CommonJS:二者不兼容,混用报错;ESM的import须顶层声明,动态加载需用import();exportdefault与具名export导入方式严格对应;Node.js中ESM需启用"type":"module"且路径必须带后缀。
-
JavaScript与WebAssembly集成旨在结合两者优势:JavaScript负责DOM交互,Wasm处理高性能计算。通过fetch加载Wasm模块,共享线性内存传递数据,Emscripten生成胶水代码简化开发,并支持Wasm调用JS实现双向通信,提升Web应用性能。
-
浮动导致父容器高度塌陷是因浮动元素脱离文档流,解决需让父容器重新感知高度;overflow:hidden触发BFC但会裁剪溢出内容,clearfix更可控且无副作用,现代推荐直接用flex布局。
-
flex-wrap是控制Flex项目是否换行的属性,默认nowrap;当表单项多、容器窄时,设为wrap才能折行实现响应式布局,并需配合justify-content和flex设置确保对齐与宽度分配。
-
Promise是对异步操作的抽象封装,具有pending、fulfilled、rejected三种不可逆状态;pending不可跳过,状态单向流转;async/await错误处理更安全;Promise.all()全有或全无,Promise.allSettled()允许部分失败;未捕获拒绝会导致内存泄漏。
-
CSS中无mask-color属性,可通过background-color与mask-image结合、filter滤镜、SVG内联fill着色或伪元素叠加实现遮罩颜色效果。
-
本文介绍如何使用原生JavaScript和CSS类切换,实现点击不同按钮显示对应图形区域,并分别计算正方形与长方形面积,避免冗余函数,提升代码可维护性。
-
WebWorker是独立于主线程的后台脚本,不共享内存、不可操作DOM,通过postMessage通信,支持Transferable优化大数据传输,需显式错误监听,SharedArrayBuffer+Atomics可实现共享内存但需跨域隔离。
-
JavaScript代码可测试性的核心在于函数纯度、显式依赖和副作用隔离:纯函数需避免隐式状态依赖,依赖应通过参数注入而非闭包或顶层模块引用,副作用如时间、I/O等需抽象为可替换输入,测试时优先真实渲染而非过度mock,并正确处理异步逻辑。
-
JavaScript函数的核心差异在于this绑定、参数处理和调用方式:function声明具提升性、独立this和arguments,可作构造函数;箭头函数无this和arguments、不可构造、继承外层this;剩余参数替代arguments;原始类型传值,引用类型传共享引用;闭包需防内存泄漏。
-
设置边框需同时定义宽度和样式,border-width设置粗细,border-style定义类型如solid、dashed,二者结合border-color可简写为border属性,单独设置某边可用border-top-style等属性。
-
Bootstrap的collapse组件可快速实现内容展开收起,需引入CSS和JS文件,通过data-bs-toggle和data-bs-target控制显示隐藏,支持默认展开和手风琴效果,提升交互体验。
-
对象属性读取速度受隐藏类、原型链深度和属性动态变化影响,现代引擎如V8对结构稳定对象优化良好,建议避免频繁增删属性、缓存常用属性值,并在键为动态类型时选用Map以提升性能。
-
JavaScript错误可通过try...catch捕获运行时错误(如JSON解析失败、访问空对象属性等),但不能捕获语法错误或Promise异步错误(除非配合async/await);其结构含try、catch和可选finally;常用于JSON.parse、DOM操作等场景,并支持通过error.name等属性做差异化处理。