-
JavaScript是运行在浏览器中的脚本语言,核心是让网页动态交互:实现表单实时校验、页面内容即时更新、动画与数据可视化,并借助Node.js等扩展至服务器、桌面端、小程序及AI等领域。
-
原型是函数的属性,原型链是对象查找属性的路径。每个函数有prototype对象,实例通过__proto__指向它,访问属性时若自身没有则沿原型链向上查找,直至null。
-
柯里化是参数分步求值的转换策略,非函数组合本身,但使多参函数适配compose链所需的单参数要求;需基于fn.length判断参数个数,注意this绑定、箭头函数无length、rest参数限制及真实场景中的this和异步语义问题。
-
JavaScript装饰器元数据是通过装饰器函数为类、方法等添加可在运行时读取的额外信息。1.装饰器作为语法糖,在代码声明时插入逻辑,附加元数据;2.ReflectMetadata提案提供defineMetadata/getMetadata等API,结合TypeScript的emitDecoratorMetadata实现类型反射,广泛用于DI、ORM、路由等场景;3.新ES装饰器提案(Stage3)通过context对象提供更灵活的初始化和修改能力,但不内置统一元数据存储,需借助WeakMap等自行管理;
-
1、a:link设置未访问链接为蓝色;2、a:visited将已访问链接设为紫色;3、a:hover添加悬停时的手型光标;4、a:active定义点击瞬间的红色高亮,提升交互体验。
-
JavaScript路由切换核心是不刷新页面改变URL并更新视图,依赖HistoryAPI(pushState/replaceState)和popstate事件监听,或Hash模式的hashchange事件,本质是路径字符串到渲染逻辑的映射。
-
手机端表单优化核心是提升拇指点击准确率,需设420px断点、标签顶部堆叠、点击热区不小于44×44px、统一间距变量控制。
-
答案:构建支持自定义规则的代码检查工具需设计统一规则接口,通过AST解析源码并应用可插件化规则,结合配置文件动态加载与启用规则,提供清晰开发文档,并优化错误定位与性能。
-
使用CSS的text-align和vertical-align属性可实现图片在表格中的水平与垂直居中,推荐用类统一控制,避免使用已废弃的align和valign属性。
-
实现高级JavaScript拖拽需基于mousedown/touchstart事件,结合mousemove/touchmove实时更新位置,并在mouseup/touchend结束拖拽。核心是绑定事件到document防止失联,使用offset计算定位,支持触摸设备时通过e.touches[0]获取坐标并统一处理逻辑。为提升体验,可添加边界限制、吸附对齐、拖拽克隆和z-index层级提升。性能方面推荐用transform代替left/top,配合节流优化频繁触发,及时解绑事件避免内存泄漏,确保跨浏览器与移
-
使用@keyframes定义动画关键帧,通过transform的scale()和rotate()组合实现图片缩放旋转,再用animation属性应用到图片,可设置时长、缓动、循环等参数,配合:hover还可触发悬停动画,注意transform需统一声明避免覆盖。
-
JavaScript操作JSON核心是JSON.stringify()和JSON.parse(),前者序列化对象为字符串,后者解析字符串为对象;对Date需reviver还原,循环引用需replacer规避或用第三方库,Map/Set等需手动转换,解析须try/catch容错。
-
子元素重叠导致点击失效时,应先检查页面结构确认遮挡情况,使用开发者工具临时禁用pointer-events或添加轮廓观察实际占位;通过合理设置z-index(需配合定位属性)控制层级,避免滥用高数值,建议按模块分层;优先调整布局结构,如用padding替代负margin,采用flex或grid布局减少绝对定位冲突,从根本上降低重叠风险。
-
HTML5通过CSS定义颜色,支持颜色名称、十六进制(#RRGGBB/#RGB)、RGB/RGBA、HSL/HSLA等格式;需注意兼容性、可访问性及深色模式适配。
-
JavaScript对象属性通过描述符实现精细控制,分为数据描述符和访问器描述符,分别包含value/writable或get/set等元信息,不可混用;利用Object.defineProperty或Reflect.defineProperty可设置writable、enumerable、configurable来控制属性的可写、可枚举和可配置性,实现如响应式系统、隐藏状态、只读字段等元编程技巧,是Vue.js等框架实现数据劫持的核心机制。