回答: 是的,Nuxt.js 通过服务端渲染(SSR)生成静态 HTML 页面,提升搜索引擎爬虫的抓取效果,具体优化点包括:
generate 配置,将动态路由预生成静态文件(如商品详情页)。
head() 方法动态设置页面标题、关键词等 SEO 关键信息。
回答: 同构(Isomorphic)指代码在服务端和客户端均可运行,Nuxt 的同构过程如下:
asyncData 或 fetch 在服务端预取。回答: 是的,其他 SEO 优化方案:
prerender-spa-plugin 对指定路由生成静态 HTML。回答: 复杂表单联动常见场景:
实现方案:
v-if、watch 监听字段变化,结合 async-validator 动态校验。
useState 管理状态,利用 useEffect 处理依赖关系。
回答: 是的,React 和 Vue3 均有实际使用经验:
<script setup> 语法、Teleport、响应式原理(Proxy)。
回答: Vue3 主要升级点:
Object.defineProperty,支持深层对象监听。回答:
示例:
// allSettled 结果格式:
[{ status: 'fulfilled', value: 1 }, { status: 'rejected', reason: 'Error' }]回答: ES5 实现继承的常见方式:
function Parent() {}
function Child() {}
Child.prototype = new Parent(); // 问题:父类属性被所有实例共享 function Child() { Parent.call(this); } // 问题:无法继承父类原型方法 function Child() { Parent.call(this); }
Child.prototype = new Parent();
Child.prototype.constructor = Child; // 解决上述两种问题回答: 跨域是浏览器同源策略(协议、域名、端口一致)的限制,解决方式:
Access-Control-Allow-Origin: *)。<script> 标签跨域请求(仅支持 GET)。回答:
回答: CORS 跨域流程:
text/plain、application/x-www-form-urlencoded、multipart/form-data): Access-Control-Allow-Origin 是否匹配当前域。Access-Control-Allow-Methods 和 Access-Control-Allow-Headers。回答: 闭包(Closure)是函数与其词法环境的组合,特性:
function createCounter() {
let count = 0;
return () => count++; // 返回的函数闭包引用了 count
}回答: 常见内存泄漏场景:
const timer = setInterval(() => {}, 1000);
// 忘记 clearInterval(timer)var/let/const 声明变量,导致变量挂载到 window。 const element = document.getElementById('id');
// 即使删除 DOM,element 仍保留引用回答: 常用 Webpack 配置:
entry、output。
style-loader、css-loader)、图片(file-loader)。
HtmlWebpackPlugin 生成 HTML,CleanWebpackPlugin 清理构建目录。
TerserPlugin)、缓存(contenthash)。
回答:
module.rules 中配置,链式调用(从右到左)。plugins 数组中配置,通过钩子介入构建生命周期。回答:
回答: 是的,Webpack5 主要改进:
cache: { type: 'filesystem' } 显著提升构建速度。file-loader)。回答: 模板字符串(Template Literals)特性:
\n 或拼接符号。${} 插入变量或表达式。const name = 'Alice';
console.log(`Hello, ${name}!`); // Hello, Alice!回答: Grid 布局是二维布局系统,核心概念:
display: grid、grid-template-columns 定义列宽。gap 设置行列间距。grid-column、grid-row 控制项目位置。grid-area 定义项目在网格中的区域。
优势:相比 Flexbox 更适合复杂布局(如棋盘、仪表盘)。回答: 常见响应式方案:
回答: 常用 CSS 预处理器:
回答:
async/await 底层基于 Generator 和 Promise 实现:
async 函数被转换为 Generator 函数,通过 yield 暂停执行。
V8 使用 Promise 自动处理异步操作,通过 next() 恢复执行。
await 时,暂停并等待 Promise 完成。
回答: Generator 是 ES6 的异步编程解决方案,特性:
function* 声明,内部使用 yield 暂停执行。next() 恢复执行,返回 { value, done }。
示例:function* gen() {
yield 1;
yield 2;
}
const g = gen();
g.next(); // { value: 1, done: false }回答:
Generator 适用场景:
yield 和 Promise 实现类似 async/await 的效果。
回答: HTTP/2 核心改进: