-
JavaScript执行上下文是代码运行时的环境,决定变量、函数和this的值如何被访问;分为全局、函数和eval三种类型,经历创建与执行两阶段,由执行栈管理上下文切换。
-
JavaScript服务端渲染(SSR)指服务器执行JS生成完整HTML再返回浏览器,Next.js通过getServerSideProps实现,提升首屏速度、SEO和弱网体验,但需权衡实时性与服务器负载。
-
JavaScript中JSON解析核心是JSON.parse()和JSON.stringify(),前者将JSON字符串转为对象,后者将对象序列化为JSON字符串,二者因轻量、通用、安全及浏览器原生支持成为数据交换事实标准。
-
表单控件使用absolute错位是因缺少定位上下文,需为父元素设置relative以创建定位容器,使absolute元素相对于父级精确定位,适用于下拉框、图标、提示气泡等场景。
-
JavaScript中创建对象有5种常用方式:1.对象字面量适用于单个对象,语法简洁;2.newObject()显式构造,适合动态添加属性;3.构造函数可实例化多个相似对象;4.Object.create()实现原型继承;5.ES6类语法清晰,适合面向对象编程。
-
答案是JavaScript元编程通过Proxy、Reflect和属性描述符在运行时动态控制对象行为,例如使用Proxy的set拦截器可实现负数自动转0的数值容器。
-
短路求值是JavaScript中&&和||的特性:左侧操作数足以确定结果时,右侧不执行;||用于提供默认值(对falsy值返回右侧),&&用于安全访问(仅truthy时执行右侧);但需注意0/""/false等合法falsy值被||误覆盖,推荐用??和?.替代。
-
现代前端通过CSSModules、CSS-in-JS、ShadowDOM或BEM实现样式模块化。1.CSSModules将类名局部化,避免全局污染;2.CSS-in-JS如styled-components将样式写入JS,支持动态属性;3.ShadowDOM提供原生隔离,适用于WebComponents;4.BEM通过命名规范减少冲突。选择方案需结合技术栈,确保样式独立、可维护。
-
拖拽成功需同时满足:1.dragstart中调用dataTransfer.setData()设合法类型值;2.dragover和drop事件中均调用preventDefault();3.用CSS禁用user-select和滚动干扰;4.移动端须降级为touch事件实现。
-
最可靠做法是用setTimeout包裹requestAnimationFrame启动逻辑,确保延迟启动、可中断、兼容性好,并配对使用cancelAnimationFrame清除旧句柄。
-
网格溢出需协同控制盒模型、轨道约束与子项尺寸:全局设box-sizing:border-box;轨道用minmax()/fit-content();子项设min-width:0;图文内容配max-width/word-break等。
-
match()方法用于在字符串中搜索匹配正则表达式的内容并返回结果;1.若正则表达式带g标志,match()返回所有完整匹配项的数组;2.若无g标志,则返回第一个匹配及其捕获组等详细信息的对象;3.若未找到任何匹配项,返回null而非空数组;4.match()与exec()的区别在于match()适用于一次性获取匹配项列表或首个匹配详情,而exec()适合迭代处理每个匹配及其位置信息;5.使用捕获组可提取匹配中的特定部分,命名捕获组提升了代码可读性;6.处理match()结果时必须检查是否为null以避免
-
嵌入式样式是将CSS写在HTML的<style>标签内,位于<head>中,其优先级与外部样式表相同,取决于选择器权重、来源顺序和!important声明。
-
弹性盒子对齐错误常因主轴与交叉轴混淆,flex-direction决定主轴方向,justify-content控制主轴对齐,align-items控制交叉轴对齐,需配合使用;常见场景如水平垂直居中用justify-content:center和align-items:center,顶部左对齐用flex-start,底部居中用align-items:flex-end;排查问题应确认display:flex已设置、主轴方向正确、子元素尺寸不影响布局、无外层限制。
-
本教程将详细介绍如何利用CSS实现一个无限旋转的圆锥渐变动画。核心技术包括使用::before伪元素承载conic-gradient,并通过巧妙设置渐变颜色(首尾颜色一致)确保动画循环的无缝性。结合@keyframes规则和transform:rotate()属性,我们能为网页元素添加一个引人注目的动态视觉效果,同时确保良好的兼容性和性能。