-
JavaScript模拟私有状态有三种主流方式:闭包封装(构造函数内声明变量并暴露方法)、工厂函数(返回对象,语义清晰)、WeakMap(键为实例,支持原型复用且垃圾回收友好),但均为约定式保护,新项目应优先使用ES2022私有类字段#field。
-
必须在服务端用bleach.clean()白名单过滤HTML,前端净化仅为补充;禁用|safe直接输出,需显式配置tags、attributes及protocols;禁止strip_tags/正则等不可靠方案;属性值须二次转义;富文本白名单须按业务最小权限控制。
-
<scriptsetup>是Vue3.2+官方推荐的编译时语法糖,简化CompositionAPI使用、提升类型推导精度与性能;需用ref/reactive创建响应式数据,props/emits通过defineProps/defineEmits声明,组件方法需defineExpose暴露,组合式API需显式导入。
-
禁用user-scalable=yes是解决移动端浮动错位的关键,因其放大缩放时亚像素误差导致换行与间隙;应改用现代布局(如flex/grid)替代float。
-
Less混合器无法返回值,需通过@_result变量加!important在调用处显式获取结果;适用于单次计算,不支持链式调用或@media内动态计算。
-
CSS的border-spacing创建的间隙不属于任何元素,无法直接设置背景色;但可通过双box-shadow模拟悬停时行间距的着色效果。
-
WeakSet不能防止脚本注入,仅能非侵入式追踪已授权DOM元素引用以避免内存泄漏;它不参与授权决策,须配合严格校验与防御性操作,且不可替代XSS根本防护措施。
-
discarded状态无法被JavaScript捕获,唯一可靠保存时机是freeze事件和pagehide且persisted===true;还原需结合pageshow.persisted、localStorage时间戳及navigation类型综合判断冷启动与热恢复。
-
用@keyframes实现云朵飘动需设translateX(-100%)无缝循环,配合will-change:transform触发GPU加速、linear缓动、overflow:hidden防白边;云形用border-radius组合或clip-path绘制;分三层z-index模拟景深,各层duration/opacity/位移范围不同;须响应prefers-reduced-motion降级。
-
Less变量需加模块前缀(如@btn-primary-bg)避免命名冲突,声明须带分号,注意引入顺序;.mixin()适合动态样式,.extend()用于固定样式合并;函数操作HSL空间,慎用嵌套;变量需同步为CSS自定义属性以联动JS。
-
绝对定位多列不重叠需按内容最大宽度设列宽并加间隙,left用累计偏移计算,父容器须设height防塌陷,IE11避免混合单位calc()。
-
Intl对象是浏览器和Node.js原生国际化API,无需第三方库即可精准适配全球日期、数字、货币等本地化格式,基于ICU实现高性能格式化。
-
crossorigin="use-credentials"由浏览器自动携带Cookie等凭证,模块加载器不管理Token;服务端必须返回精确Origin域名和Access-Control-Allow-Credentials:true,缺一则加载失败。
-
优先使用JavaScript的location.href或location.replace()实现定时跳转,因<metahttp-equiv="refresh">过时、不可控、破坏历史栈且影响SEO;其仅适用于无JS环境的静态页。
-
块级元素与行内元素的核心差异在于默认盒模型行为和HTML语义约束:块级元素独占一行、可设宽高、可嵌套任意元素;行内元素横向排列、宽高由内容决定、不可嵌套块级元素(如<p>内不能放<div>),否则解析器将自动闭合,破坏DOM结构。