-
AJAX是一种利用现有技术实现异步通信的开发模式,核心是在不刷新页面前提下与服务器交换数据并局部更新DOM;主要通过XMLHttpRequest或fetchAPI实现,依赖JavaScript事件循环机制保障页面流畅性。
-
代码分割通过将大JS文件拆分为小块并按需加载,减少首屏加载时间。它利用构建工具如Webpack或Vite,结合路由实现懒加载,例如React的React.lazy与Suspense、Vue的动态导入。基于路由时,每个页面组件独立打包,访问时才加载;按功能可分离重型模块如地图或编辑器;第三方库可用splitChunks提取公共依赖。还可通过preload预加载关键资源,prefetch在空闲时预取后续模块,提升性能。关键是区分优先级,合理配置以优化加载时机。
-
Object.getPrototypeOf()是获取对象原型的标准方法,返回其内部[[Prototype]]指向的对象;接收对象参数,对非对象值抛TypeError;不推荐使用非标准的__proto__属性。
-
position:absolute元素不会创建BFC,其定位与渲染受父容器是否为BFC直接影响;父容器触发BFC后可裁剪溢出、稳定定位基准、隔离外部干扰,其中display:flow-root最适合配合absolute使用。
-
最简单但不推荐的方式是直接在<body>标签中用bgcolor属性(已废弃),推荐用CSS的background-color或background-image配合no-repeat、cover等属性设置纯色或背景图,并注意路径、兼容性和fallback策略。
-
本文介绍一种无需依赖第三方库、纯JavaScript编写的高性能对象深度差异计算方法,支持嵌套对象与属性删除标记(值为"deleted"),适用于高频调用场景。
-
基础下拉菜单用<select>标签包裹<option>即可,需设name属性以确保表单提交;<option>推荐设value,默认选中加selected;disabled有效且禁用交互与提交,readonly对<select>无效。
-
<p>必须用:root声明CSS颜色变量以确保全局可访问,命名需以--开头、区分大小写且无空格或中文;引用时必须提供fallback值防止失效;响应式需在@media中重定义;IE不支持需降级处理。</p>
-
代码压缩与混淆通过减小体积和增加逆向难度提升性能与安全性,常用工具如Terser和JavaScriptObfuscator,在Webpack、Vite等工程化工具中集成,生产环境应权衡压缩、混淆强度与可维护性。
-
浮动布局导致父容器高度塌陷、右侧栏换行、背景色失效等,根源是元素脱离文档流;Grid仅需三行代码(display:grid、grid-template-columns、grid-column)即可替代,无需清除浮动且支持响应式与垂直居中。
-
加标签仍被缓存是因为meta标签仅对HTML首次加载有效,且现代浏览器常忽略;真正禁用缓存需服务端为所有资源(HTML、JS、CSS、API)统一配置Cache-Control响应头,并确保CDN/代理透传。
-
JavaScript模块打包工具需按项目类型、环境和依赖选择:Webpack需手动配置loader和resolve;Vite开发用ES模块、构建用Rollup;Esbuild极快但无HMR和代码分割,适合转译和工具链。
-
aside是语义标签,非视觉侧边栏;仅适用于与主内容有逻辑附属关系的补充信息,如术语解释、作者简介等,必须配合CSS(如flex/grid)实现布局,删除后主内容须仍完整自洽。
-
Symbol.iterator是ES6引入的内置symbol,用于定义对象的迭代行为;当对象拥有返回迭代器的[Symbol.iterator]方法时,即符合可迭代协议,可被for...of等语法消费。
-
src用于嵌入资源(如script、img),浏览器强制同步加载并执行;href用于建立关联(如link、a),浏览器异步处理或按需触发,二者语义与解析机制根本不同,不可互换。