-
本文详解如何对包含嵌套items数组的对象数组进行精准过滤(保留flaggedItem!==null的子项),同时保持外层结构完整,适用于真实业务中常见的多级数据清洗场景。
-
outline不是外发光,它仅为可访问性设计,不支持圆角、模糊、分方向设置;真正外发光必须用box-shadow多层叠加实现。
-
该用<wbr>而非<br>时,是在需允许浏览器在窄容器中智能折行但不强制换行的场景,如长URL、驼峰标识符、版本号等;<wbr>是无视觉副作用的语义断点,仅在必要时生效,而<br>强制换行。
-
JavaScript正则支持反向引用,用\1、\2等引用前面捕获组内容,ES2018起支持\k<name>命名引用,适用于重复词、对称结构等场景,但有空匹配、字符类禁用等限制。
-
FIMO输出的HTML不保留图层可见性,因其导出是快照式扁平渲染,不序列化图层状态;虽可手动扩展SVG+JS实现控制,但需导出前保存状态、导出后缝合,FIMO本身不提供自动支持。
-
text-stroke不是所有浏览器都支持,别直接上线用用text-stroke给文字加描边,看着很酷,但实际支持度有限:Chrome和Safari基本没问题(需-webkit-text-stroke),Firefox完全不支持,Edge从v79+开始支持标准写法但仍有兼容风险。常见错误现象:text-stroke:2pxred;在Firefox里完全没效果,控制台也不报错,容易误以为代码写错了。必须写-webkit-text-stroke才能在旧版Chrom
-
最高效的JS数组去重方法是利用Set对象,因其底层基于哈希表,平均时间复杂度为O(N),性能最优;2.filter结合indexOf方法兼容性好但时间复杂度为O(N^2),适合小规模数组;3.reduce结合Map同样具有O(N)时间复杂度,灵活性高,适用于需要自定义去重逻辑或处理对象数组的场景;4.对于对象数组去重,需基于唯一标识属性(如id)或组合键使用filter加Set/Map,或利用Map覆盖机制保留最后出现的元素;5.Set、filter+indexOf和reduce+Map三种方法在现代Ja
-
JavaScript通过window.history操作浏览器历史,支持后退、前进、跳转及修改URL而不刷新页面;仅限同源操作,无法读取完整历史;pushState添加新记录,replaceState替换当前记录;popstate监听导航变化并获取state数据。
-
JavaScript中对象扩展运算符({...obj})执行浅拷贝,仅复制第一层属性值,对嵌套引用类型只复制地址,导致修改嵌套内容时新旧对象相互影响。
-
style标签必须放在<head>内且在依赖它的HTML元素之前,否则样式可能无法及时应用;语法同外部CSS但不支持@import和跨块复用CSS变量;适用于页面专属小范围样式,避免滥用导致维护困难。
-
JSONP的核心原理是利用<script>标签不受同源策略限制的特性,通过动态创建<script>标签向跨域服务器请求数据,服务器将JSON数据包裹在客户端指定的回调函数中返回,从而实现跨域数据获取。1.首先生成唯一的全局回调函数名,避免多个请求间的命名冲突;2.创建<script>标签并设置其src为带callback参数的URL,指向目标服务;3.将回调函数挂载到window对象上,供服务器返回时调用;4.服务器响应函数调用格式的数据,浏览器执行该脚本并触发回调;5
-
仅设max-width:100%的图片不会撑满容器,因height默认auto保持宽高比;需配合object-fit(如cover/contain)及明确容器尺寸才能实现填充或等比缩放。
-
HTML原生type="email"验证不靠谱但够用,仅检查基础格式如@和点,不查域名存在性、不防伪造,用户可轻易绕过,绝不能替代后端校验。
-
JavaScript中this指向由调用上下文决定,遵循四条绑定规则:new绑定>显式绑定>隐式绑定>默认绑定;隐式绑定易因函数提取而丢失this;bind绑定可被new覆盖;箭头函数无this,继承外层词法作用域;默认绑定在严格模式下为undefined。
-
本文详解如何通过CSS自定义属性(CSSVariables)协同transition与@keyframes,消除hover动画在unhover阶段的突兀回弹,实现双向流畅缩放效果,无需JavaScript或第三方动画库。