-
伪类和伪元素不能嵌套,但可组合使用;如:hover::before是合法链式限定,伪类作用于真实元素,伪元素附加内容,顺序解析而非嵌套。
-
hwb()函数需严格按色相(0–360,可省单位)、白度%、黑度%顺序书写,二者和≤100%,不支持alpha;失效主因是浏览器兼容性不足(Firefox≥111、Safari≥16.4)、拼写错误、构建工具未处理或缺失降级色。
-
本文介绍使用原生JavaScript为submit按钮绑定点击事件,动态修改目标div的CSS类名,实现“点击即显示”的交互效果,并兼顾页面刷新后的状态持久化方案。
-
纯函数指相同输入始终返回相同输出且无副作用的函数,如add(a,b);柯里化是将多参数函数转化为单参数函数链的技术,如curriedMultiply(2)(3)(4),两者提升代码可维护性与复用性。
-
JavaScript正则表达式元字符需用双反斜杠转义,escapeRegExp函数通过字符类匹配14个特殊字符并统一替换为"\$&",兼容字面量和RegExp构造函数,确保动态字符串安全匹配。
-
Prettier是提升JavaScript代码可读性和团队协作效率的主流格式化工具,支持多种语言,能自动处理空格、换行、引号等格式问题。通过npm或yarn在项目中本地安装可避免版本不一致问题。支持配置文件如.prettierrc或prettier.config.js来自定义规则,常用配置包括semi、singleQuote、trailingComma、printWidth和tabWidth。集成到VSCode等编辑器后可实现保存时自动格式化。若项目使用ESLint,需安装eslint-config-pr
-
PerformanceObserver是用于实时监听页面性能数据的API,相比performance.getEntries()更灵活,适合监控动态资源加载、异步操作等场景。它通过订阅entryType(如resource、paint、longtask、navigation)来捕获性能条目,可在回调中处理资源加载耗时、绘制时间等信息。例如监听'resource'类型可追踪脚本、图片等静态资源的加载过程,结合FP、FCP、长任务等指标分析性能瓶颈。使用时需提前初始化、指定entryTypes、避免重复创建实例
-
支持thisArg的数组方法有:1.forEach、2.map、3.filter、4.find、5.findIndex、6.some、7.every;sort、reduce等不支持,需用bind或箭头函数处理。
-
惰性求值是一种延迟计算策略,JavaScript虽为严格求值语言,但可通过生成器实现惰性求值,利用yield暂停执行,按需生成值,适合处理无限序列与性能优化。
-
<hr/>是HTML5中的空元素,无需闭合,因其无内容且浏览器忽略后续闭合标签;语义表示主题分隔,非纯装饰,CSS控制需先清border再设新样式。
-
不推荐用float实现多列布局,因其本意是图文环绕,强行用于分栏会导致父容器塌陷、列间内容无法平衡、响应式断点难控;现代应使用column-count等CSS多列模块。
-
useCallback用于记忆化函数,避免组件重新渲染时函数引用变化导致子组件不必要的重渲染。它接收函数和依赖数组,仅当依赖项变化时返回新函数实例,常与React.memo配合优化性能,防止闭包陷阱需正确设置依赖,但不应过度使用,因有额外开销,适用于函数作为props传递至优化子组件的场景。
-
TreeShaking依赖ES6静态模块语法,通过分析import/export明确引用关系,标记未使用导出并在压缩阶段由Terser删除,需配置sideEffects并避免CommonJS以确保效果。
-
JavaScript解构赋值是改变变量绑定的语言特性,非语法糖;数组解构按索引顺序匹配,支持跳过、默认值和剩余元素;对象解构按属性名匹配,支持重命名、默认值和嵌套解构;函数参数可解构但需防深层嵌套报错;解构仅读自有属性,不递归、不查原型链。
-
非核心CSS放body底部仍会阻塞渲染,因其被HTML解析器发现即触发下载与CSSOM构建;应通过preload+onload、media切换等方式延迟加载,而非仅调整位置。