-
每个项目应封装为语义化<sectionclass="project">区块,含<h3>标题、<pclass="meta">辅助信息(含<time>)、简洁描述及可点击链接;移动端单列,平板起用grid自适应;强调时间精度、具体技术动作与量化结果。
-
eval是JavaScript中高危函数,将字符串作为代码执行,易导致XSS、性能差、调试难、作用域混乱;应禁用,改用JSON.parse、方括号访问、Reflect.apply等安全替代方案。
-
SQL注入源于后端未过滤的用户输入拼接进SQL语句,必须用参数化查询防御;前端校验可被绕过,ORM使用不当仍会触发注入;表名等动态元素需白名单校验,日志记录也需防范二次注入。
-
单选按钮通过name属性分组,相同name的选项互斥,value定义选项值,label提升可访问性,checked属性设置默认选中项,每组仅一个选项应被默认选中。
-
useEffect默认在组件挂载后(即首次渲染完成)立即执行一次,之后才响应依赖项变化;若需跳过初始执行、仅在用户真实输入后触发,应结合状态判空或useRef标记实现条件控制。
-
::marker伪元素不支持content属性插入SVG或字符串,仅允许空值、none或计数器;需用::before配合url()、background-image或mask实现可控图标。
-
模态窗宽度用%撑满全屏,主因是父容器无明确宽度或模态窗未脱离文档流且缺max-width约束;应设父容器width/max-width、模态窗自身合理max-width(如min(800px,90vw)),并注意box-sizing、居中方式及键盘弹出时vw抖动问题。
-
插槽内容无法被<keep-alive>直接缓存,必须将需保留状态的逻辑封装为具名组件,再用<keep-alive>包裹该组件而非<slot>;作用域插槽可用于父子通信。
-
最稳妥方式是用语义化<table>展示等级说明,首行<thead><thscope="col">列名,每行等级名用<thscope="row">,配<caption>说明用途,禁用rowspan/colspan;手机端用@media转为垂直卡片;内容应硬编码而非JS生成。
-
必须使用<time>标签来标记具体可解析的时间点或时间段,如文章发布时间、活动截止日等;datetime属性须为YYYY-MM-DD或YYYY-MM-DDThh:mm:ss等标准格式,否则机器无法识别。
-
真正“精准”的核心是让CSS选择器权重自然胜出,关键在选择器特异性、作用域控制、加载顺序;优先组合组件库原生类名(如.el-button.my-primary),确保自定义CSS后加载,避免ID和内联样式。
-
ChromeDevTools的display面板需手动开启Layout侧边栏(右键标签栏勾选),仅在Elements面板选中元素后生效;CSS-in-JS样式可能不被识别,需查Styles面板;outline不占布局空间适合临时标记,border触发重排但反映真实盒模型;getBoundingClientRect()返回视觉位置,但受合成层、包含块影响;CSS自定义属性修改需作用于正确作用域(如:root)才全局生效。
-
yield用于暂停生成器函数并返回单个值,调用next()继续执行;yield*委托给其他生成器或可迭代对象,逐个产出其值。
-
JavaScript虽无原生注解,但通过JSDoc、装饰器提案及框架扩展可实现类似功能:1.JSDoc用于类型提示与文档生成;2.装饰器(Stage3)修饰类成员行为;3.框架如NestJS利用装饰器定义元数据;4.构建工具识别特殊注释优化打包。
-
绝大多数情况下,position:sticky更合适,因其天然支持滚动吸附、不脱离文档流、无需手动监听滚动;position:fixed仅适用于全局悬浮按钮等特定场景,且存在移动端定位偏移等问题。