-
柯里化是将多参数函数转换为一系列单参数函数的过程,通过闭包逐步接收参数,最终统一执行原函数;如add(a,b,c)变为add(a)(b)(c),常用于参数预设、高阶函数适配与配置化API构建。
-
<p>0.1+0.2不等于精确0.3是因二进制浮点精度限制,解决方法包括:使用Decimal模块实现高精度计算,如Python中Decimal('0.1')+Decimal('0.2')得Decimal('0.3');比较时用math.isclose()或容差值abs(a-b)<1e-9判断近似相等;通过单位转换将小数运算变为整数运算,如金额以“分”为单位;输出时用round()或格式化控制显示精度,避免用户误解。应根据场景选择合适方案。</p>
-
JavaScript引擎通过标记-清除算法决定对象是否可回收:从根对象出发标记所有可达对象,未被标记的即为不可达而被清除;引用计数因无法处理循环引用已被弃用。
-
grid-template-areas要求每行引号内单词数(含.)严格相等,区域名须与grid-area完全一致,否则静默失效;适用于结构稳定的模块化布局,不支持动态增删或“多对一”映射。
-
D3.js绘制的矩形(rect)默认无class属性,因此即使定义了.bar{color:steelblue;},样式也不会生效;需显式通过.attr("class","bar")为元素添加对应类名,才能使CSS规则生效。
-
使用@mediaprint定义打印样式,隐藏非核心元素如导航和按钮,保留正文内容并设置合适字体、页边距及分页规则,通过@page控制纸张方向与margins,优化表格不分页、添加链接URL显示,提升打印可读性与布局完整性。
-
按需加载CSS最常用方式是JavaScript动态创建并插入link标签,设置rel="stylesheet"和href后添加到head;需检查重复加载、监听onload/onerror,并结合点击、路由切换等业务场景触发。
-
应警惕布局嵌套超三层,优先拆分为独立组件并采用BEM扁平命名;Flexbox仅用于局部对齐,主结构用文档流;响应式规则内联组件内,状态样式与布局样式分离。
-
Symbol是一种唯一原始类型,用于创建不重复的标识符,可避免属性名冲突并模拟私有成员。通过Symbol()生成唯一值,即使描述相同也不相等;可用作对象属性键,不会被常规遍历方法读取;Symbol.for(key)在全局注册表中共享Symbol;常用于防止命名冲突、定义元数据及使用内置Symbol如Symbol.iterator。
-
display无法过渡因是离散属性,应改用opacity+visibility组合实现淡入淡出,需配合transition-delay错开visibility时机;若需收起空间,须追加max-height或height动画,并注意JS中transitionend事件监听与状态防抖。
-
答案:针对浏览器兼容性问题,可通过HTML条件注释(仅IE5-9)、CSS@supports特性检测、JavaScript动态加载样式等方法处理;推荐优先使用@supports进行特性检测,结合Autoprefixer和渐进增强策略,确保样式兼容性与可维护性。
-
transition无效的主因是hover前后属性类型不匹配:需确保属性名一致、值类型可插值(如颜色/长度/opacity)、初始值非auto/unset,且避免使用display/visibility等不可过渡属性。
-
浮动元素需配合position才能生效z-index,关键在于同一层叠上下文中通过relative或absolute定位设置层级,避免父级opacity、transform等限制,推荐用flex或grid替代float布局以减少冲突。
-
CSS选择器是选中HTML元素并应用样式的桥梁,包括基础选择器(如标签、类、ID、通配符)和高级选择器(如后代、子元素、兄弟、属性、伪类、伪元素),掌握它们可提升样式代码的灵活性与可维护性。
-
小元素在行内布局中易挤在一起,因默认inline元素受字体基线和vertical-align:baseline影响,导致垂直对齐不一致;推荐用inline-block+vertical-align或flex+gap统一控制间距。