-
data是<object>元素的必需属性,用于指定嵌入资源的URL,是浏览器加载内容的唯一数据源;它不支持src替代,必须配合type和fallback使用以确保兼容性。
-
映射类型通过显式声明API契约(Req/Res)为双向绑定提供强类型基础,结合Zod校验、类型守卫与自动化工具链实现编译期检查和运行时防护。
-
不能,FontFaceSet.load()仅触发加载而不保证字体就绪;真正可靠的就绪信号是document.fonts.ready,它在字体完成加载、解析和注册后才resolve,需await此Promise再执行Canvas绘图。
-
直接用::selection伪元素设置选中样式,仅支持color、background-color等少数属性;需兼容旧版浏览器时加::-webkit-selection;注意overflow/transform、表单控件、优先级及深色模式适配。
-
<table>布局日历仍合理,因其语义清晰、可访问性好;须用<thead><thscope="col">定义星期头,空单元格用<td>占位并设aria-hidden,每个日期<td>必须含data-date属性。
-
VueRouter切换时transition不生效,主要因router-view未被transition直接包裹、CSS类名未匹配Vue版本钩子(Vue2用v-前缀,Vue3默认fade-前缀)、路由组件非动态加载导致enter/leave钩子未触发。
-
根本原因是浏览器默认table-layout:auto会因内容动态计算列宽,小屏下易被长文本撑开导致溢出;须改用table-layout:fixed并配合width:100%和显式列宽(如width:20%)或堆叠/滚动等场景化方案。
-
可以,但受限于系统和浏览器:安卓需用file:///绝对路径且路径无中文空格;iOSSafari基本禁用file://,须通过iCloud或本地HTTP服务(如Python服务器)访问。
-
手动实现简易Promise需支持三种状态、链式调用与值穿透:构造函数管理pending/fulfilled/rejected状态及回调队列;.then返回新Promise并兼容同步异步;.catch是.then(undefined,onRejected)语法糖;resolvePromise处理返回值解析,含微任务调度、循环引用检测等细节。
-
line-height是控制行距的正确CSS属性,定义基线间距,应优先使用无单位数值(如1.5),避免px/em导致响应失效或继承异常,且不可用于<br>等空标签。
-
深拷贝是创建完全独立的新对象,与原对象内存隔离;Object.assign()等为浅拷贝;JSON.parse(JSON.stringify())最快但限制多;递归实现需WeakMap防循环引用;Lodash的cloneDeep()最稳妥。
-
:only-child生效需父元素有且仅有一个直接子元素且类型匹配;常见失效因文本节点、注释或空格导致子节点数≠1;区别于:first-child(仅首)、:last-child(仅末)、:only-of-type(同类型唯一)。
-
PurgeCSS删掉已用class的根本原因是它仅识别静态字符串字面量,无法处理动态拼接、JS注入或模板字符串中的类名;必须通过safelist显式声明动态类模式或确保源码中完整出现。
-
NotificationAPI不能实现推送,仅负责在页面运行时显示通知;真正推送需配合WebSocket、SSE或WebPush(ServiceWorker+PushAPI)等机制实现消息抵达。
-
JavaScript隐式转换依据上下文自动转类型,+操作符遇字符串触发字符串拼接,算术运算符强制转数字,布尔环境判断真/假值,==进行松散相等比较时执行类型转换,对象转原始值优先调用valueOf再toString,可自定义Symbol.toPrimitive控制行为。