前端进阶技术文档
1. JavaScript 高级特性
1.1 作用域与闭包
// 函数作用域
function outer() {
let a = 1;
function inner() {
console.log(a); // 可以访问外部作用域的变量
}
inner();
}
// 块级作用域
{
let x = 1;
const y = 2;
}
// console.log(x); // 错误:x未定义
// 闭包示例
function createCounter() {
let count = 0;
return {
increment: () => ++count,
getCount: () => count
};
}
const counter = createCounter();
console.log(counter.increment()); // 1
1.2 异步编程
// Promise
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ data: 'success' });
}, 1000);
});
}
// Promise链式调用
fetchData()
.then(result => console.log(result))
.catch(error => console.error(error));
// async/await
async function getData() {
try {
const result = await fetchData();
console.log(result);
} catch (error) {
console.error(error);
}
}
// Promise.all示例
const promises = [fetchData(), fetchData()];
Promise.all(promises)
.then(results => console.log(results));
1.3 错误处理
try {
// 可能抛出错误的代码
throw new Error('自定义错误');
} catch (error) {
console.error(error.message);
} finally {
// 总是执行的代码
}
// 自定义错误类
class ValidationError extends Error {
constructor(message) {
super(message);
this.name = 'ValidationError';
}
}
1.4 ES6+ 特性
// 解构赋值
const { name, age } = person;
const [first, ...rest] = array;
// 模板字符串
const greeting = `Hello, ${name}!`;
// 箭头函数
const add = (a, b) => a + b;
// 类和继承
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound.`);
}
}
class Dog extends Animal {
speak() {
console.log(`${this.name} barks.`);
}
}
// 模块化
// module.js
export const helper = () => {};
export default class MainClass {}
// main.js
import MainClass, { helper } from './module.js';
2. CSS 进阶
2.1 Flexbox 布局
.container {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.item {
flex: 1;
/* 或使用具体值 */
flex: 0 1 200px;
}
2.2 Grid 布局
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-gap: 20px;
}
.grid-item {
grid-column: span 2;
grid-row: span 2;
}
2.3 动画和过渡
/* 过渡 */
.element {
transition: all 0.3s ease-in-out;
}
/* 变换 */
.element:hover {
transform: scale(1.1) rotate(10deg);
}
/* 关键帧动画 */
@keyframes slideIn {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}
.animated {
animation: slideIn 0.5s ease-out;
}
2.4 Sass 预处理器
// 变量
$primary-color: #007bff;
$spacing: 20px;
// 混入
@mixin flex-center {
display: flex;
justify-content: center;
align-items: center;
}
// 嵌套规则
.container {
padding: $spacing;
.header {
color: $primary-color;
&:hover {
opacity: 0.8;
}
}
}
// 函数
@function calculate-width($n) {
@return $n * 100px;
}
2.5 响应式设计
/* 基础媒体查询 */
@media screen and (max-width: 768px) {
.container {
flex-direction: column;
}
}
/* 响应式图片 */
.responsive-image {
max-width: 100%;
height: auto;
}
/* 响应式字体 */
html {
font-size: calc(16px + 0.5vw);
}
3. Git 版本控制
3.1 基础命令
# 初始化仓库
git init
# 添加文件到暂存区
git add <file>
git add .
# 提交更改
git commit -m "commit message"
# 查看状态
git status
# 查看提交历史
git log
# 创建分支
git branch feature-branch
# 切换分支
git checkout feature-branch
# 或
git switch feature-branch
# 合并分支
git merge feature-branch
3.2 远程仓库操作
# 添加远程仓库
git remote add origin <repository-url>
# 推送到远程仓库
git push origin master
# 拉取远程更新
git pull origin master
# 克隆仓库
git clone <repository-url>
3.3 高级 Git 操作
# 交互式变基
git rebase -i HEAD~3
# 储藏更改
git stash
git stash pop
# 标签管理
git tag v1.0.0
git push origin v1.0.0
# 撤销提交
git reset --soft HEAD^
git reset --hard HEAD^
4. 最佳实践
4.1 代码组织
- 模块化开发
- 组件化思维
- 遵循 DRY 原则(Don't Repeat Yourself)
- 使用适当的设计模式
4.2 性能优化
- 代码分割和懒加载
- 缓存策略
- 资源压缩
- 图片优化
- 减少 DOM 操作
4.3 开发流程
- 使用 ESLint 和 Prettier 保持代码风格一致
- 编写单元测试
- 进行代码审查
- 持续集成/持续部署 (CI/CD)
4.4 安全考虑
- XSS 防护
- CSRF 防护
- 输入验证
- 安全的依赖管理
5. 调试和工具
5.1 开发工具
- Chrome DevTools
- VS Code
- 包管理器(npm/yarn)
- 构建工具(webpack/vite)
5.2 调试技巧
- 断点调试
- 网络请求分析
- 性能分析
- 内存泄漏检测
这份文档涵盖了前端开发的进阶知识,建议根据实际项目需求深入学习相关主题。持续学习和实践是提高技能的关键。