-
flex-grow:1不生效的主因是input默认min-width:auto阻止收缩,必须加min-width:0;同时避免width冲突,图标按钮需设flex-shrink:0,且flex:1等价于flex:110%可能误压缩,推荐flex:010。
-
replace默认仅替换首个匹配项,加g标志才全局替换;replaceAll只支持字符串或带g的正则,否则报错,且不支持回调函数。
-
模块化组件架构通过契约层控制事件传播,而非依赖DOM冒泡:组件自主声明事件透出策略,采用修饰符、命中测试阻断或语义化委托实现精准治理,杜绝全局监听与责任倒置等反模式。
-
不该。新手应先掌握CSS布局、盒模型、层叠与继承等底层原理,再根据团队协作、MVP开发或原生CSS熟练度等场景选择框架,避免过早依赖导致理解断层。
-
直接渲染10万条数据会卡死浏览器,因DOM节点超量引发内存飙升与高频重排;虚拟滚动仅渲染可视区+缓冲区节点,用占位层撑高滚动条、transform定位内容,避免同步布局计算。
-
Array.prototype.values()返回同步迭代器,不支持原生延迟加载;但可通过结合定时器、Promise或async/await手动实现分段异步消费,如每200ms取10个元素。
-
纯HTML+JavaScript实现签到日历需手写渲染表格、用localStorage存"YYYY-MM-DD"格式打卡记录,动态计算当月首日星期与天数,标记并禁用已签/未来日期,兼容Safari需try/catch及ISO格式校验。
-
必须先检查window.getSelection().rangeCount===0,再操作Range;替换用deleteContents()+insertNode();加样式需防span嵌套;取消用replaceWith(...childNodes);监听selectionchange不可靠,应结合mouseup/touchend;Range需克隆与校验。
-
导航菜单问题多因HTML结构不合规或CSS优先级冲突所致,需严格遵循框架的类名层级、父容器要求及显隐控制方式。
-
Vue项目部署到二级目录需同步配置:VueRouter的base、vue.config.js的publicPath(Vite为base)、Nginx的alias与try_files,三者路径必须完全一致(如'/admin/'),否则导致资源404、白屏或刷新404。
-
必须同时设置body{margin:0;min-height:100vh;background-color:#101a2c}和html{height:100%},否则背景仅覆盖内容区域;canvas需设为block并宽高100vw/vh,避免background简写清空颜色;深色模式应通过data-theme+JS控制而非仅依赖prefers-color-scheme。
-
newService()是解耦的第一道坎,因其将调用方与具体实现硬编码绑定,导致替换、拦截或测试时需修改所有构造点;应通过工厂函数统一创建并注入实例,切断隐式耦合。
-
前端生成HTML长图海报本质是CSS精确控制垂直流与导出适配,需禁用滚动、声明容器高度、处理设备像素比、跨域图片及字体加载时机。
-
JavaScript哈希路由是利用URL中#后hash值实现SPA导航的机制,不触发页面刷新,通过监听hashchange事件并解析location.hash来渲染对应视图,兼容IE8+且无需服务端配置,但SEO差、URL不美观。
-
模板编译是将字符串模板转为JavaScript渲染函数的过程,预编译在构建阶段完成该转换,避免运行时解析,提升性能。以{{name}}欢迎你!为例,编译后生成function(data){returndata.name+"欢迎你!";},运行时直接调用函数。预编译优势包括减少运行时开销、加快首次渲染、支持代码压缩和提前报错。主流实现有Handlebars通过命令行工具预编译为轻量runtime依赖,Vue的SFC在构建时用@vue/compiler-dom转为render函数,生产环境无需编译器,Reac