-
CSSHoudini通过多个API让JavaScript直接操作浏览器渲染引擎,实现更灵活的样式控制。1.CustomPropertiesandValuesAPI支持定义带类型的CSS变量并进行动画;2.TypedOMAPI提供带单位的数值对象,提升性能和安全性;3.CSSParserAPI允许自定义CSS解析规则;4.PaintAPI通过PaintWorklet实现自定义绘制效果,如棋盘格背景;5.AnimationWorkletAPI创建高性能线程级动画;6.LayoutAPI自定义布局算法,如瀑布流
-
JavaScript用数组可高效模拟栈(LIFO,push/pop)和队列(FIFO,push/shift),但shift性能较差;可封装成Stack/Queue类提升语义化与复用性。
-
height设为auto时无法过渡,因auto非具体数值,浏览器无法插值;应改用max-height配合overflow:hidden实现过渡。
-
伪类和伪元素可连写如:hover::after,但需先定义::after并设置content才能生效;悬停仅控制显隐,须配合visibility/opacity及transition;移动端hover不可靠,无障碍和动态定位需JS补充。
-
表单跳转失败主因是action路径错误、input缺少name属性、method语义错配。action必须写对绝对或相对路径;所有提交字段需设name;登录等操作用post,搜索用get。
-
使用transform实现位置与尺寸动画更高效,推荐translate()和scale()避免重排,结合二者可创建流畅动效。
-
HTML5表单验证通过内置属性实现基础校验,减少JavaScript使用。1.使用required、type="email"、type="url"、min/max、pattern、maxlength/minlength等属性可定义输入规则;2.浏览器在提交时自动检查并提示错误;3.可通过checkValidity()和reportValidity()用JavaScript手动触发验证;4.利用setCustomValidity()可自定义错误提示;5.需注意前端验证不可替代后端校验,部分旧浏览器兼容性差,
-
用hsl()的l参数降低亮度是最可控的变深方式:l值越小颜色越深,如hsl(200,50%,60%)→hsl(200,50%,40%);相比rgb()易偏色、十六进制叠黑受背景影响,hsl()语义清晰、可预测。
-
JavaScript事件循环是单线程下通过微任务优先、宏任务次之的任务调度实现异步,调用栈清空后才执行任务;微任务(如Promise)总在宏任务(如setTimeout)前连续执行,确保可预测的执行顺序。
-
JavaScript迭代器核心是Symbol.iterator方法,需返回含next()的协议对象;next()须无参、首次返首值、done为true后恒定返回;自定义时须每次返回新迭代器实例。
-
权限控制通过角色或权限码实现,前端根据用户权限动态控制界面显示与路由访问。1.基于角色判断用户是否有权访问特定功能;2.使用权限码实现细粒度控制,如'edit:post';3.路由守卫拦截无权访问路径;4.封装指令控制DOM元素渲染。需妥善管理权限数据并处理登录状态变化。
-
padding应设为0.75em1em等相对单位值,配合line-height1.4~1.6、box-sizing:border-box及合理fallback字体,才能兼顾呼吸感与一致性。
-
主轴空间分配由flex-grow、flex-basis和flex-shrink协同控制,结合gap与min-width可实现灵活稳定的布局。
-
按钮点击没反应的首要原因是onclick未在正确环境下执行,如浏览器禁用JS或页面以file://协议打开;其次检查DOM是否加载完成、ID拼写是否一致、按钮是否被遮挡或设置了pointer-events:none;表单内按钮需明确type属性并用preventDefault()阻止默认刷新。
-
元编程指程序能操作代码本身,JavaScript通过Proxy和Reflect实现。Proxy可拦截对象操作如get、set,用于日志、验证等;Reflect提供统一的函数式对象操作方法,常与Proxy配合使用。两者结合广泛应用于响应式系统(如Vue3)、调试监控、权限控制等场景,是现代框架核心机制之一。