-
JavaScript模块加载器是解析、获取、执行模块并管理依赖的系统,涵盖浏览器原生ES模块、构建工具(如Webpack、Vite)及运行时加载器(如SystemJS);动态导入import()是ES2020引入的Promise-based运行时按需加载机制,支持表达式路径、不参与静态分析、可错误捕获;浏览器原生加载器遵循同源策略与MIME校验,按需请求、解析模块图、实例化并缓存;构建工具将其转为异步chunk并注入运行时逻辑;使用时需注意默认导出访问方式、模块上下文限制及Node.js兼容性要求。
-
LocalStorage是浏览器提供的持久化存储方案,支持以键值对形式保存最多约5MB的字符串数据,具备页面关闭后数据不丢失、遵循同源策略、提供setItem、getItem、removeItem和clear等简单API的特点,可通过JSON.stringify和JSON.parse处理对象类型,适用于存储用户偏好、表单草稿等非敏感信息,但需防范XSS攻击、手动管理过期逻辑,并注意无痕模式下的限制。
-
JavaScript代码可测试性的核心在于函数纯度、显式依赖和副作用隔离:纯函数需避免隐式状态依赖,依赖应通过参数注入而非闭包或顶层模块引用,副作用如时间、I/O等需抽象为可替换输入,测试时优先真实渲染而非过度mock,并正确处理异步逻辑。
-
对象字面量{}创建最常用安全,适合静态结构;键名含特殊字符须加引号;点号访问合法标识符,方括号支持动态键;方法中this指向调用者,易丢失需绑定。
-
答案:在VisualStudio中编写HTML需通过浏览器预览效果。方法一:右键文件选择“在浏览器中查看”,用默认浏览器打开;方法二:手动将HTML文件拖入浏览器窗口,适合频繁调试;方法三:使用VSCode的LiveServer插件实现热重载,保存后自动刷新。注意F5不适用于纯HTML项目,避免路径含中文或空格,确保引用资源路径正确。
-
Symbol的核心价值在于其唯一性,可避免对象属性命名冲突,实现“私有”属性与元编程。每次调用Symbol()都生成唯一值,即使描述相同也不相等,确保属性键互不覆盖。它不能被for...in、Object.keys()或JSON.stringify()遍历或序列化,但可通过Object.getOwnPropertySymbols()或Reflect.ownKeys()获取,适用于内部状态存储、混入扩展、自定义迭代(如Symbol.iterator)等场景。需注意:Symbol非绝对私有,无法跨域共享(除非
-
框架调用你的代码,库由你调用;控制反转体现为执行权归属——axios.get()由你控制时机,useEffect等钩子则由框架在指定时机触发。
-
属性选择器[attr^="value"]匹配属性值严格以指定字符串开头(区分大小写、不可有前置空格);[attr$="value"]匹配严格以指定字符串结尾;[attr="value"]表示完全相等(含空格大小写),非包含匹配;子字符串匹配应使用[attr*="value"]。
-
position:sticky在Safari15.4前、Chrome56前不生效,需设最近滚动祖先高度或overflow;iOSSafari中对table子元素无效;父容器含transform/perspective/filter会禁用sticky;z-index在IE/旧Edge中因层叠上下文判断差异导致遮挡异常;iOSSafari中fixed元素存在跳变、缩放失真等问题;absolute在Flex/Grid容器中旧版浏览器包含块判定不一,建议显式设position:relative。
-
百分比宽度以包含块宽度为基准,padding/margin百分比也按父宽计算以防循环,height百分比需包含块高度确定,box-sizing影响实际占位。
-
函数式编程强调纯函数与不可变性,利用高阶函数如map、filter、reduce实现数据处理管道,在JavaScript中提升代码可读性与可维护性。
-
requestAnimationFrame(rAF)是浏览器原生、与屏幕刷新率自动同步的动画API,具备自动节能、批量处理、高精度时间戳和精准启停等优势,显著提升动画性能与能效。
-
绝对定位表单校验提示需将input父容器设为position:relative,提示元素设position:absolute并用top/right等精确定位;配合visibility/opacity控制显隐、z-index管理层级,避免overflow:hidden截断。
-
TypeScript是带类型检查的JavaScript增强版,所有合法JS代码都合法,但通过编译时检查提前拦截空值等错误;优先用interface定义可扩展业务对象,unknown替代any保障安全,类型是需持续维护的活契约。
-
答案:CSS中实现直线的常见方法有四种:使用border属性适合简单分隔线;伪元素::before/::after适用于精确定位的装饰性线条;background渐变可实现自定义虚线、点线等复杂样式;语义化标签hr用于内容分隔,兼顾可访问性。每种方法根据场景选择,border简单高效,伪元素灵活不占布局,背景渐变控制精细,hr符合语义规范。