-
Object.defineProperties()专为精确控制多属性的configurable/enumerable/writable/get/set/value等行为设计,非批量赋值快捷方式;必须传入合法描述符对象,value/writable须成对出现且不可与get/set混用,configurable:false后属性不可删或重定义。
-
Safari14–15.6中Flex子元素height:100%不生效,因父Flex容器未被识别为有明确高度的上下文;需显式设父容器height,或改用align-items:stretch并移除height:100%。
-
text-emphasis是纯CSS属性,不能作为HTML属性使用;必须通过style或样式表设置,并需同时声明-webkit-text-emphasis和text-emphasis以兼容Safari,中文使用时推荐text-emphasis-position:under并注意字体支持。
-
表单提交必须调用event.preventDefault()阻止页面刷新,否则JS逻辑丢失;input事件适合实时验证但需防抖,change事件适合完成态校验;取值用.value而非innerText,复选框判断.checked;form.reset()仅重置HTML初始值,不处理JS动态修改或框架状态。
-
JSON.parse()是JavaScript解析JSON的核心函数,需传入合法双引号字符串,禁用单引号、尾逗号、undefined等;须用try...catch安全处理,reviver参数可过滤字段或转换类型。
-
动画响应式失效因@media未重置关键帧或状态,应优先用transform/opacity、显式声明transition、独立keyframes名;prefers-reduced-motion下需设animation:none;iOS卡顿需will-change或translateZ(0)启硬件加速;改duration须先animation:none再重声明。
-
clear:both仅在浮动导致内容塌陷、错位或父容器高度塌陷时必需,用于让元素避开上方左右浮动框;现代方案优先选用display:flow-root或Flex/Grid布局。
-
z-index不生效的主因是元素未定位或处于独立层叠上下文中;必须设置position且避免父级触发opacity、transform等新层叠上下文,否则子元素z-index仅在内部有效。
-
必须为父容器设置display:grid或inline-grid才能使align-items:center生效;它仅作用于直接子元素在交叉轴的对齐,且容器需有明确高度(如min-height:100vh)才能体现居中效果。
-
favicon不显示的根本原因是浏览器强缓存、路径错误或格式兼容性问题;需检查图标能否直连访问、Network中状态码是否200、服务器是否放行/favicon.ico路径,并优先使用多尺寸ICO而非伪ICO。
-
checkboxhack是利用checkbox的:checked伪类配合CSS选择器实现显隐控制的纯CSS技术;它依赖HTML结构(label关联input)、隐藏原生控件、合理使用visibility/opacity/max-height动画,并注意移动端点击区域与兼容性限制。
-
防抖与节流机制不同:防抖是“停手后执行一次”,节流是“固定频率最多执行一次”;防抖需闭包保存timer、清除重设、正确传递this和参数,并支持immediate模式。
-
纯CSS主题色缓动的关键是给使用变量的属性(如color、background-color)加transition,而非给CSS变量本身;JS仅切换data-theme等状态,由CSS响应并插值。
-
Vue页面白屏需分段定位:先查Elements确认#app是否存在,再通过beforeCreate、created、beforeMount、mounted钩子埋点日志,重点排查created中API未catch、mounted中ref未定义等异步/依赖错误。
-
骨架屏是页面数据加载前的灰色轮廓占位,微信开发者工具可自动生成skeleton.wxml与wxss文件,通过wx:if控制显隐,需随页面布局更新而同步调整。