当前位置: 首页 > news >正文

JavaScript基础课程二十、代码规范与 Git 版本控制

本课聚焦前端开发必备的代码规范与Git版本控制,是从个人练习走向企业级开发的关键一课。代码规范保证代码风格统一、易读易维护,是团队协作的基础;Git则实现了代码版本管理、历史回溯、多人协作与云端备份,是现代开发不可或缺的工具。课程从命名、格式、注释到ESLint工具,从Git命令到流程管理,全面建立标准化开发意识。掌握本课内容,不仅能让你的代码更专业、更严谨,更能直接适配企业开发模式,提高协作效率,减少维护成本。规范与Git看似基础,却是衡量前端开发者是否专业、是否具备上岗能力的核心标准。

一、课程学习目的

  1. 理解代码规范在团队开发中的重要性,养成标准化、可读性强的编码习惯。

  2. 掌握JavaScript通用代码规范,包括命名、注释、缩进、语法格式等基础规则。

  3. 了解ESLint自动化规范检查工具,学会基础配置与使用方法。

  4. 掌握Git版本控制核心概念,理解仓库、提交、分支、推送等基础流程。

  5. 能够独立使用Git完成项目初始化、提交、更新、备份等开发必备操作。

  6. 建立规范化、可追溯的前端开发意识,适配企业级团队协作模式。

二、核心知识点讲解

1. 代码规范的意义

代码规范是一套统一的编码规则,用于保证多人开发时代码风格一致、易于阅读、便于维护。

规范能减少bug、降低沟通成本、提高代码可维护性,是企业开发的硬性要求。

无规范的代码会导致维护困难、扩展困难、交接困难,严重影响项目效率。

2. JavaScript 基础代码规范

命名规范

  • 变量、函数、方法:使用小驼峰 camelCase,如userNamegetWordList

  • 常量:使用全大写+下划线,如MAX_COUNTBASE_URL

  • 类/构造函数:使用大驼峰 PascalCase,如WordManagerUserInfo

格式规范

  • 统一使用2个空格或4个空格缩进,禁止混用Tab

  • 语句结尾必须加分号,代码块{}前后保留空格

  • 运算符两侧加空格,如let sum = a + b

  • 每行代码长度不宜过长,过长需合理换行

注释规范

  • 函数上方必须写注释,说明功能、参数、返回值

  • 复杂逻辑行内注释,关键业务必须标注说明

  • 禁止无用注释,注释要简洁、准确、达意

语法规范

  • 优先使用let/const,禁止使用var

  • 优先使用箭头函数、模板字符串、解构赋值等ES6+语法

  • 避免嵌套过深,函数功能保持单一职责

  • 关闭控制台无用打印,生产环境清除console.log

3. ESLint 自动化规范工具

ESLint是前端最常用的代码检查工具,可自动检测不规范代码,并支持一键修复。

可配置自定义规则,与编辑器、Git、打包工具结合,实现提交前自动校验。

从根源避免不规范代码进入仓库,是现代工程化必备工具。

4. Git 版本控制基础

Git是目前世界上最主流的分布式版本控制系统,用于记录代码修改历史、多人协作、代码备份。

核心概念

  • 工作区:写代码的目录

  • 暂存区:提交前临时存放区域

  • 本地仓库:本地保存版本的仓库

  • 远程仓库:GitHub/GitLab/Gitee 云端仓库

核心流程

初始化 → 编写代码 → 添加到暂存区 → 提交到本地仓库 → 推送到远程仓库

5. Git 常用核心命令

  • git init:初始化本地Git仓库

  • git add .:将所有修改添加到暂存区

  • git commit -m "提交信息":提交版本并说明修改内容

  • git status:查看文件状态

  • git log:查看提交历史

  • git branch:查看/创建分支

  • git push:推送到远程仓库

  • git pull:拉取远程最新代码

三、示例程序

示例1:规范的JavaScript代码写法

// 常量命名规范(全大写+下划线) const MAX_WORD_COUNT = 50; const BASE_API_URL = "https://api.com/word"; // 变量小驼峰 let wordList = []; // 函数小驼峰 + 函数注释 /** * 获取单词列表 * @param {Number} page - 页码 * @param {Number} size - 每页数量 * @returns {Array} 单词数组 */ function getWordList(page, size) { // 运算符空格、缩进规范 const skipCount = (page - 1) * size; // 模板字符串规范 console.log(`开始获取第${page}页数据`); return wordList.slice(skipCount, skipCount + size); } // 类使用大驼峰 class WordTool { constructor() { this.count = 0; } } export default WordTool;

示例2:不规范代码对比(错误示范)

// 不规范命名 var a=1;//无空格、var、无注释 function getdata(){return 1;}//无空格、命名不规范 const b="test";//无意义命名 // 规范代码更易读、更专业

示例3:Git基础操作命令

# 1. 进入项目,初始化Git git init # 2. 添加所有文件到暂存区 git add . # 3. 提交版本 git commit -m "feat: 初始化项目,完成单词列表页面" # 4. 查看状态 git status # 5. 推送到远程(先配置远程地址) git push origin main

四、掌握技巧与方法

  1. 编辑器安装代码格式化插件(如Prettier),保存时自动格式化。

  2. 命名坚持语义化,不用拼音、不用a/b/c等无意义名称。

  3. 函数保持单一职责,一个函数只做一件事,便于维护和复用。

  4. 每次Git提交必须写清晰说明,不使用“更新”“修改”等模糊信息。

  5. 代码提交前执行git status检查,避免提交无用文件。

  6. 团队开发必须使用分支,不直接在主分支上开发。

  7. 规范不是约束,是提高效率、减少加班的最佳实践。

五、课后作业

基础作业

  1. 按照课程规范,重写你之前写的任意一段代码,修正命名、缩进、注释。

  2. 熟记JavaScript命名规范,能正确区分变量、常量、类的命名格式。

  3. 安装Git,配置用户名与邮箱,使用git --version验证安装成功。

进阶作业

  1. 初始化一个本地Git仓库,完成add → commit → log全流程操作。

  2. 在项目中编写规范的函数注释,包含功能、参数、返回值。

  3. 尝试搜索并了解ESLint基础配置,了解自动修复功能。

实战作业

  1. 将你之前的Vite单词项目纳入Git版本管理,完成规范改造+Git提交,实现“规范化+可追溯”的完整企业开发流程。

上一课:前端工程化基础(npm + Vite)实战作业代码

代码功能说明

本实战代码基于npm与Vite搭建原生JS工程化项目,实现完整的模块化异步单词加载系统。项目通过npm初始化依赖管理,安装Vite作为构建工具,采用ES6模块化拆分请求、工具、渲染三大模块,使用async/await处理异步逻辑,支持单词查询、列表展示、错误提示等功能。代码完全遵循工程化结构,可通过npm run dev启动、npm run build打包,演示依赖管理、模块化开发、热更新、项目构建等核心知识点,帮助快速掌握现代前端工程化流程,为框架学习打下坚实基础。

注意事项

  1. 运行前必须安装Node.js环境,否则无法使用npm与Vite。

  2. 首次运行需执行npm install安装依赖,不可直接启动项目。

  3. Vite项目必须在终端运行,不可直接打开HTML文件预览。

  4. 模块化文件使用import/export语法,路径必须正确。

  5. node_modules无需上传或复制,体积过大,通过package.json恢复即可。

  6. 开发使用npm run dev,上线打包使用npm run build,生成dist目录。

  7. 修改代码Vite会自动热更新,无需手动刷新浏览器。

  8. 报错优先检查依赖是否安装、命令是否正确、文件路径是否匹配。

完整实战代码(Vite标准项目结构)

1. 项目目录结构

js-vite-word/ ├── index.html ├── package.json ├── src/ │ ├── main.js │ ├── api.js │ └── utils.js └── vite.config.js

2. package.json

{ "name": "js-vite-word", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }, "devDependencies": { "vite": "^5.0.0" } }

3. index.html

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Vite 单词工程化项目</title> </head> <body> <div id="app"></div> <script type="module" src="/src/main.js"></script> </body> </html>

4. src/api.js(数据模块)

// 模拟单词接口 export function fetchWordList() { return new Promise((resolve) => { setTimeout(() => { resolve([ { en: "apple", cn: "苹果" }, { en: "banana", cn: "香蕉" }, { en: "orange", cn: "橙子" } ]); }, 1000); }); }

5. src/utils.js(工具模块)

// 渲染工具 export function renderList(selector, list) { const dom = document.querySelector(selector); let html = "<h2>单词列表</h2><ul>"; list.forEach(item => { html += `<li>${item.en} - ${item.cn}</li>`; }); html += "</ul>"; dom.innerHTML = html; }

6. src/main.js(主入口)

import { fetchWordList } from "./api.js"; import { renderList } from "./utils.js"; // 异步初始化 async function init() { const app = document.querySelector("#app"); app.innerHTML = "加载中..."; try { const list = await fetchWordList(); renderList("#app", list); } catch (err) { app.innerHTML = "加载失败:" + err; } } init();

7. vite.config.js

import { defineConfig } from 'vite' export default defineConfig({ server: { port: 3000 } })

运行命令

npm install npm run dev npm run build

作业验收标准

  1. 依赖安装、启动、打包命令均可正常执行。

  2. 页面能够异步加载并展示单词列表,无报错。

  3. 模块化拆分清晰,import/export语法正确。

  4. 代码风格规范,符合工程化项目结构。

  5. 理解npm依赖管理与Vite构建流程。

一文搞懂Git提交规范与版本管理(原理+范例+冲突处理+思维导图)

http://www.cnnetsun.cn/news/1434474.html

相关文章:

  • MAA助手技术问题解决方案:从问题定位到安全规范
  • 从实验室到产线:基于ADS1220的PT1000温度监测系统,我是如何把精度做到±0.1°C的?
  • EagleEye DAMO-YOLO TinyNAS快速上手:动态阈值调节平衡漏检误报
  • OpenClaw自动化巡检:Qwen3-32B每日检查服务器日志异常
  • 安装和配置Docker教程(装在其他盘)
  • 2026.3.22算法学习笔记
  • 「温故知新」CompBio智能体自主分析生物数据
  • 轻量级CoAP库:面向Arduino/ESP32的嵌入式RESTful通信实现
  • 时间与空间复杂度
  • 发那科机器人弧焊指令实战:从Search指令到组掩码设置的完整避坑指南
  • LangChain入门
  • 2026年主流VPS线路类型深度解析与选择指南
  • 通义千问2.5-0.5B-Instruct英文翻译能力:跨语言应用部署实战
  • Llama-3.2V-11B-cot 作品集:多风格艺术画作解读与诗意描述生成
  • Nunchaku FLUX.1-dev 在AIGC内容创作中的应用:自动化配图生成
  • RMBG-2.0镜像免配置亮点:内置Prometheus指标暴露,支持Grafana监控
  • 新手破解密码
  • 02. 快速开始
  • 零基础学 Agent:规划能力——让 Agent 自己把事情做完 第 5 期
  • 单细胞RNA Velocity分析实战:从Cell Ranger到scVelo的完整流程(附避坑指南)
  • 盛思锐SEN66 - PC套件体验
  • DNSLog盲注
  • 关于exists中标量子查询条件改写经验
  • SQL 多表联查 +ADO.NET学习总结:从基础到实战
  • Windows EFS文件加密系统
  • 2026年AIGC检测能查出用了降AI工具吗?真相可能和你想的不一样
  • el-input输入限制全攻略:从整数到小数,再到特殊符号过滤
  • 嵌入式软件测试工具选型与工程实践指南
  • CAM++系统效果实测:说话人验证相似度计算,结果清晰直观
  • Starry Night效果惊艳展示:15步内生成1024px高清幻想画作集