-
JavaScript类型系统基于值而非变量,需掌握隐式与显式转换规则;使用===避免意外转换,通过Object.prototype.toString.call()实现精确类型检测,理解falsy值(如0、''、null等)以提升代码健壮性。
-
BEM通过block__element--modifier命名强制作用域隔离,降低样式覆盖成本;禁用复杂选择器、依赖工具链校验与编辑器支持,并需配合设计令牌管理全局变量。
-
flex-direction:column将主轴设为纵向,使子元素沿Y轴堆叠;此时justify-content控制上下对齐,align-items控制左右对齐,需配合height和center值才能实现垂直居中。
-
mailto链接点开没反应,主因是参数含未编码的中文、空格、换行或符号导致浏览器截断;收件人含空格或全角字符也会失败;部分环境(如iOSPWA、企业Android平板)未注册默认邮件客户端而静默丢弃。
-
BEM通过block__element--modifier结构使类名自带三层语义:归属、角色、状态,可替代多数注释;Element命名需避免动词与样式词,强调角色与状态解耦;第三方组件应封装Wrapper以保持语义归属清晰。
-
合理使用HTML语义化标签可提升SEO与可维护性,一、用header、nav、main等标签明确页面结构;二、规范h1-h6层级,每页唯一h1,逻辑嵌套标题;三、为img添加alt描述,装饰图设alt="",结合figure与figcaption标注图表;四、引入JSON-LD格式的Schema标记,标注文章、产品等类型及发布时间、作者等字段,并用Google工具验证;五、提升可访问性,提供按钮链接文本说明,支持键盘导航,使用ARIA属性,确保颜色对比度,time标签添加datetime属性。
-
PerformanceAPI可精准采集FP、FCP、LCP、FID、TTFB等核心性能指标,通过performance.timing、getEntries()及PerformanceObserver获取页面加载与交互数据,结合mark打点和measure测量自定义逻辑耗时,利用sendBeacon上报关键数据,实现轻量高效的前端性能监控。
-
all属性非万能,误用会破坏可访问性与兼容性;应优先精准控制属性,慎用all,避免全局应用,推荐revert而非unset或inherit。
-
使用HTML锚点或JavaScript可实现返回顶部功能。HTML锚点通过<ahref="#top">跳转,简单但无平滑效果;JavaScript调用window.scrollTo({top:0,behavior:"smooth"})实现平滑滚动,并可结合滚动事件控制按钮显示,提升用户体验。建议固定定位按钮于右下角,初始隐藏并按滚动距离显示,适配移动端与可访问性,避免固定头部遮挡内容。
-
counter-reset与counter-increment是CSS计数器机制的配对核心:前者声明并初始化计数器(如counter-reset:section;),后者在匹配元素上触发递增(如counter-increment:section;);二者名称必须严格一致,且counter-reset必须作用于父容器才能使子元素的counter-increment有效。
-
required属性通过浏览器内置验证提升用户体验和数据质量,1.确保必填字段不为空,2.提供即时反馈减少用户挫败感,3.过滤基础无效数据提高数据完整性。但仅依赖该属性并不安全,1.客户端验证易被绕过,2.无法阻止恶意请求,3.必须配合服务器端验证。结合JavaScript可实现更高级验证,1.自定义错误提示信息,2.动态条件验证,3.实时输入反馈增强用户体验。
-
MediaQuery是CSS3根据设备特性应用不同样式的机制,核心语法为@mediascreenand(条件){样式规则},常用min-width和max-width设置断点;推荐移动优先策略,先定义小屏样式,再逐步增强大屏体验,结合HTML的link标签可控制外部CSS文件的条件加载,提升性能与维护性。
-
IE8不支持oninput,必须用onpropertychange替代,但需过滤propertyName、防递归触发、处理disabled失效及JS赋值场景,contenteditable和textarea需轮询兜底。
-
JavaScript生成器函数是可暂停执行的函数,返回迭代器对象;调用后需用next()推进执行,yield暂停并输出值,return终止并设done:true。
-
用scrollHeight实现textarea高度自适应最稳定:每次input前先设style.height='auto',再读取并设置scrollHeight;需处理IE11换行符偏差和iOSSafari延迟问题。