前端核心基础知识总结

news2024/9/21 4:22:47

目录

前言

一、HTML模块

1. 标签结构

2. 语义化标签

3. 表单元素

二、CSS模块

1. 选择器

2. 盒模型

示例一:为一个div标签设置了宽度为 200 像素,高度为 100 像素的内容区。

示例二:内边距的存在可以使内容与边框之间有一定的间隔,避免内容过于靠近边框,从而提升页面的美观度和可读性。

示例三:边框围绕在内容区和内边距之外,可以使用 `border` 属性来设置边框的样式、宽度和颜色。

示例四:外边距是元素边框与周围元素之间的空白区域。它可以使用 `margin` 属性来设置,与 `padding` 属性类似,也可以接受一个、两个、三个或四个值,分别对应上、右、下、左四个方向的外边距。

3. 布局

4. 响应式设计

5. 盒模型的计算方式

三、JavaScript 基础

1. 数据类型与变量

2. 函数与作用域

3. 事件处理

4. DOM 操作

5. AJAX 与异步编程

6. 控制结构

前端框架与工具

1. React

2. Vue.js

3. 包管理器

4. 构建工具

5. Git

结束语


前言

在当前内卷严重的技术圈,虽说近两年一直都在唱衰前端开发,甚至有一种所谓的“前端已死”的言论,但是在实际情况下前端开发依然扮演着至关重要的角色,前端是用户与数字产品交互的桥梁。无论是构建复杂且用户体验较高的网页、强大的 Web 应用程序还是响应式的移动界面,前端开发都需要扎实的基础知识,在前端开发领域,基础知识是构建高效、稳定和可维护代码的基石。无论是刚入行的新手还是经验丰富的老手,扎实的前端基础都是必不可少的,尤其在面试过程中,面试官通常会着重考察应聘者对前端基础知识的掌握程度。那么本文就来对前端开发中的必备基础知识以及常用基础知识进行全面总结,包括HTML、CSS和JavaScript,以及一些现代前端开发工具和框架。

一、HTML模块

做前端开发的小伙伴都清楚HTML 是前端开发的基础,它用于构建网页的结构,它由一系列元素组成,这些元素可以定义文档的结构和内容。关于HTML模块的使用也是非常重要的,那么以下分享一下是 HTML 相关的关键知识点。

1. 标签结构

其实HTML是由一系列标签组成,每个标签都有特定的用途,比如`<html>`标签定义整个 HTML 文档;`<head>`标签包含文档的元数据,比如 <title>、<link>、<script>和<meta>;`<body>`标签包含网页的可见内容。在实际的前端开发中,常见的标签还有`<h1>`到`<h6>`用于标题,`<p>`用于段落,`<a>`用于超链接等等,由于篇幅原因这里不再一一介绍。

2. 语义化标签

语义化 HTML 是指使用具有明确含义的标签来构建网页结构,比如`<header>`表示网页的头部,`<nav>`表示导航栏,`<section>`表示页面中的一个章节,`<article>`表示独立的、自包含的内容区域,`<footer>`表示网页的底部,`<aside>`定义与页面主要内容稍显独立的侧边栏。个人觉得语义化标签有助于提高网页的可访问性和搜索引擎优化,是比较重要的模块。

3. 表单元素

另外,表单是网页中用于收集用户输入的重要部分。其实HTML 提供了各种表单元素,比如`<input>`输入字段,如文本框、密码框、单选按钮等、`<select>`、`<textarea>`多行文本输入控件等。在前端开发中,需要了解如何设置表单的属性,比如`type`、`name`、`value`等,以及如何处理表单的提交和验证是前端开发的重要技能。

4. 多媒体元素

其实HTML 支持插入图像、音频和视频等多媒体元素。常用的一些元素,比如`<img>`标签用于插入图像,`<audio>`标签用于插入音频,`<video>`标签用于插入视频。还有就是了解如何设置多媒体元素的属性,比如`src`、`alt`、`controls`等,以及如何处理多媒体的播放和控制是前端开发的必备知识。

二、CSS模块

不用多讲,CSS是用于控制网页的外观和布局,通过CSS可以控制网页的布局、颜色、字体和动画等。虽然前端开发者觉得CSS模块比较简单,但是在实际开发中遇到复杂的页面布局,如果CSS模块知识掌握的不扎实,是不能轻而易举的把样式调好的。那么下面分享一些关于CSS 的键知识点,方便学习查阅。

1. 选择器

选择器用于选择要应用样式的 HTML 元素,常见的选择器有标签选择器(如p、h1)、类选择器(如.className)、ID 选择器(如#idName)、属性选择器(如[type="text"]),以及伪类(如:hover、:focus)等。在实际开发中,了解如何使用选择器来精确地选择元素,并应用不同的样式是 CSS 开发的基础。

2. 盒模型

盒模型是 CSS 中用于描述元素布局的概念。每个 HTML 元素都被视为一个盒子,由内容(content):显示文本和图像、内边距(padding):围绕内容的区域、边框(border):围绕内边距和内容的边框和外边距(margin):围绕边框的外部空间组成。了解盒模型对于精确控制网页元素的布局至关重要。分享几个简单示例。

示例一:为一个div标签设置了宽度为 200 像素,高度为 100 像素的内容区。

div {
  width: 200px;
  height: 100px;
}

示例二:内边距的存在可以使内容与边框之间有一定的间隔,避免内容过于靠近边框,从而提升页面的美观度和可读性。

div {
  padding: 10px; /* 四个方向的内边距均为 10 像素 */
}
div {
  padding: 10px 20px; /* 上下内边距为 10 像素,左右内边距为 20 像素 */
}
div {
  padding: 10px 20px 30px; /* 上内边距为 10 像素,左右内边距为 20 像素,下内边距为 30 像素 */
}
div {
  padding: 10px 20px 30px 40px; /* 上内边距为 10 像素,右内边距为 20 像素,下内边距为 30 像素,左内边距为 40 像素 */
}

示例三:边框围绕在内容区和内边距之外,可以使用 `border` 属性来设置边框的样式、宽度和颜色。

div {
  border: 1px solid black; /* 1 像素宽的黑色实线边框 */
}

示例四:外边距是元素边框与周围元素之间的空白区域。它可以使用 `margin` 属性来设置,与 `padding` 属性类似,也可以接受一个、两个、三个或四个值,分别对应上、右、下、左四个方向的外边距。

div {
  margin: 20px; /* 四个方向的外边距均为 20 像素 */
}
div {
  margin: 20px 30px; /* 上下外边距为 20 像素,左右外边距为 30 像素 */
}
div {
  margin: 20px 30px 40px; /* 上外边距为 20 像素,左右外边距为 30 像素,下外边距为 40 像素 */
}
div {
  margin: 20px 30px 40px 50px; /* 上外边距为 20 像素,右外边距为 30 像素,下外边距为 40 像素,左外边距为 50 像素 */
}

3. 布局

布局是CSS中非常重要的部分,如果前端开发者在这块基础不牢,会很吃力。分享几个常用的布局方式:

  • 浮动(float):向左或向右移动元素,直到其边缘触及包含框或另一个浮动元素的边缘。
  • 定位(position):控制元素在页面上的确切位置。
  • 弹性盒(flexbox):一种灵活的布局方式,可以轻松地在不同方向上对齐和分配空间。
  • 网格(grid):二维布局系统,用于创建复杂的页面布局。

4. 响应式设计

响应式也是CSS中很重要的内容,

  • 媒体查询(media queries):根据不同屏幕尺寸和设备特性应用不同的CSS样式。
  • 百分比宽度:使用百分比而非固定像素来定义元素宽度。
  • 视口单位:相对于视口宽度和高度的单位。

5. 盒模型的计算方式

在标准盒模型中,元素的宽度和高度只包括内容区的宽度和高度,不包括内边距、边框和外边距。而在 IE 盒模型(也称为怪异盒模型)中,元素的宽度和高度包括内容区、内边距和边框。我们在实际前端开发中,可以通过设置 `box-sizing` 属性来切换盒模型的计算方式。默认情况下,`box-sizing` 的值为 `content-box`,表示使用标准盒模型。如果将其设置为 `border-box`,则表示使用 IE 盒模型,比如:

div {
  box-sizing: border-box;
}

三、JavaScript 基础

接下来分享一下前端开发中比较重要的JS模块,这个模块也是前端开发中的逻辑处理模块,非常重要。

1. 数据类型与变量

都知道JavaScript 是一种动态类型语言,用于网页的交互性功能,支持多种数据类型,包括数字(Number)、字符串(String)、布尔值(Boolean)、对象、数组等。前端开发者了解这些数据类型及其操作是 JavaScript 编程的基础。变量用于存储数据,而 JavaScript 的 `var`、`let` 和 `const` 关键字用于声明变量,它们在作用域和生命周期上有所不同。

2. 函数与作用域

关于前端中的函数,其实函数是 JavaScript 中执行特定任务的代码块。了解如何定义函数、传递参数、返回值以及使用箭头函数是 JavaScript 编程的核心。作用域是变量和函数可访问的上下文,JavaScript 有全局作用域、局部作用域和块级作用域,理解这些作用域对于编写清晰和可维护的代码至关重要。另外就是在前端开发中,箭头函数的使用是非常关键的,可以使用 function 关键字或箭头函数。

3. 事件处理

关于事件处理部分,其实事件是用户与网页交互的结果,比如点击、滚动、键盘输入等,JavaScript 通过注册事件监听器来处理这些事件。关于如何使用 `addEventListener` 方法以及事件对象的属性和方法是前端开发的基本技能。其中,关于事件监听,可以使用element.addEventListener('click', function() {...})来实现,还有就是事件冒泡和捕获,事件在DOM树中的传播方式。

4. DOM 操作

想必前端开发者对DOM并不陌生,文档对象模型(DOM)是 HTML 和 XML 文档的编程接口。JavaScript 通过 DOM API 来操作和修改网页内容、结构和样式。个人觉得了解如何使用 DOM 方法来选择元素、创建(使用document.createElement('div'))、添加(使用appendChild())和删除(使用removeChild())节点、以及修改属性(使用element.innerHTML)和样式是前端开发的关键。

5. AJAX 与异步编程

最后再来分享关于AJAX相关的内容,其实AJAX允许 JavaScript 在不重新加载整个页面的情况下与服务器交换数据和更新部分网页。那么如何使用 `XMLHttpRequest` 或 `fetch` API 进行异步请求是实现动态网页交互的关键。还有就是JavaScript 的 Promise 和 async/await 语法为异步编程提供了更强大的工具,它们简化了异步代码的编写和理解,这也是前端开发中非常重要的内容之一。

6. 控制结构

关于结构控制,其实就是条件控制,常用的就是条件语句和循环等操作。

  • 条件语句:if、else if、else、switch。
  • 循环:for、while、do...while。

前端框架与工具

再聊聊聊关于前端框架和三方库相关的内容。做前端开发的小伙伴,想必对当前流行的前端框架并不陌生,比如“耳熟能详”的Vue和React。

1. React

React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库,它引入了组件化的概念,使得开发者可以通过组合小的、可复用的组件来构建复杂的用户界面。关于 React 的核心概念,比如 JSX、组件生命周期、状态和属性、以及 Hooks 都是前端开发的重要技能。

2. Vue.js

Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面,它的核心库只关注视图层,易于学习和集成,同时也可以支持构建复杂的单页应用。掌握了解 Vue 的响应式数据绑定、组件系统、指令和插件是前端开发的基础,是非常重要的前端框架。

3. 包管理器

前端开发中,关于包管理器使用也是非常常用且重要的操作。

  • npm(Node Package Manager):JavaScript的包管理器。
  • Yarn:由Facebook开发的替代npm的包管理器。

4. 构建工具

关于前端打包构建时候用到的工具,也是前端开发中常用的操纵。

  • Webpack:模块打包器,用于将项目中的各种资源打包成浏览器可以识别的格式。
  • Rollup:一个现代的JavaScript模块打包器,更适用于库的打包。

5. Git

关于Git使用,其实Git 是一个分布式版本控制系统,用于跟踪代码变更。掌握 Git 的基本命令,比如 `commit`、`push`、`pull`、`branch`、`merge` 等,以及如何使用远程仓库进行代码管理和协作,这都是前端开发的基本且必备技能。

结束语

通过上文的分享介绍,想必读者都进一步了解了前端开发相关的基础知识,其实前端开发是一个不断进化的领域,掌握核心基础知识是成为一名优秀前端开发者的前提。从 HTML、CSS 到 JavaScript,再到前端框架和工具,每一个环节都是构建高质量前端应用不可或缺的部分。而且随着技术的不断进步,新的工具和前端框架层出不穷,但无论技术如何变化,我个人觉得HTML、CSS和JavaScript的核心概念始终是开发前端应用的基石。最后,作为前端开发者只有通过不断学习和实践,我们才可以不断提升自己的技能,以适应不断变化的技术环境和用户需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字化转型专家讲师培训师唐兴通中欧国际工商学院数字化转型战略与实现路径AIGC人工智能数字化战略数字商业模式创新

《数字化转型战略与实现路径》 课程内容与收益 本课程的目标是通过深入的学习来帮助学员全面地了解数字化转型的概念和实现路径&#xff0c;掌握数字化转型的各种方法和技巧&#xff0c;进而提升数字化转型的能力和水平&#xff0c;从而使企业更具有竞争力。在这个课程中&…

《黑神话悟空》永冻流出装如何装备!!

整体玩法是通过法宝芭蕉扇打出控制后&#xff0c;再用化身技打出冰冻&#xff0c;冰冻期间用棍花持续输出&#xff0c;同时积攒元气和棍势&#xff0c;在利用三或四棍势打出一波爆发输出&#xff0c;基本上一套打完元气又满了&#xff0c;可以再放下一次控制&#xff0c;如此循…

【AI大模型应用开发】1.3 Prompt攻防(安全) 和 Prompt逆向工程

AI大模型应用开发教程 随着GPT和Prompt工程的大火&#xff0c;随之而来的是隐私问题和安全问题。尤其是最近GPTs刚刚开放&#xff0c;藏在GPTs后面的提示词就被网友们扒了出来&#xff0c;甚至直接被人作为开源项目发布&#xff0c;一点安全和隐私都没有&#xff0c;原作者的收…

C语言程序与设计第四版课后习题 - 1~8章大合集

前言 本文章是一个大合集&#xff0c;按照课后习题的命名方式命名&#xff0c;方便寻找&#xff0c;只需要在目录上点相对应的题号即可在这里插入图片描述 第一章课后习题 1.1 编写一个C程序 题目概述&#xff1a; 请参照本章例题&#xff0c;编写一个C程序&#xff0c;输…

CMU 10423 Generative AI:lec3(阅读材料:GPT1论文解读)

推荐参考&#xff1a;李沐的B站视频《GPT&#xff0c;GPT-2&#xff0c;GPT-3 论文精读》https://www.bilibili.com/video/BV1AF411b7xQ 一点记忆&#xff1a; GPT1参数量&#xff1a;大概1亿参数 12层decoder&#xff08;维度768&#xff0c;12个注意力头&#xff09; 训练集…

1-3 微信小程序协同工作和发布

协同工作和发布 &#x1f95f;&#x1f95e;以权限管理需求为例 一个项目组&#xff0c;一般有不同的岗位&#xff0c;不同角色的员工同时参与项目成员 流程 成员管理的两个方面 不同项目成员对应的权限 版本

热烈庆祝中国科学技术大学建校六六周年

卡西莫多的诗文集2022-2024.9月6-校庆国庆专版 欢迎分享 通过网盘分享的文件&#xff1a;卡西莫多的诗文集2022-2024.9月6-A5-校庆国庆专版.pdf 链接: 百度网盘 请输入提取码 提取码: umpm

请解释JSP中的九大内置对象及其作用。什么是Java Web中的请求转发和重定向?它们有什么区别?

请解释JSP中的九大内置对象及其作用。 JSP&#xff08;JavaServer Pages&#xff09;中的九大内置对象&#xff08;也称为隐式对象或自动对象&#xff09;是JSP容器为每个页面提供的Java对象&#xff0c;这些对象在JSP页面被转换成Servlet时自动可用&#xff0c;无需显式声明。…

多线程 | join方法

文章目录 1. 作用2. 用法3. 异常4. 源码为什么使用wait方法 5. 如何实现按照指定顺序执行线程6. 线程运行状态 1. 作用 在 Java 多线程中&#xff0c;join方法用于等待一个线程执行完毕。当一个线程调用另一个线程的join方法时&#xff0c;当前线程会进入等待状态&#xff0c;…

Ai+若依(智能售货机运营管理系统---帝可得)-人员管理-点位管理-区域管理-合作商管理----【08篇---0001:上】

项目介绍 售货机简介 帝可得是一个基于物联网概念下的智能售货机运营管理系统 物联网 物联网(IoT:Internet of Things)简单来说,就是让各种物品通过互联网连接起来,实现信息的交换和通信。 这个概念听起来可能有点抽象,但我们可以把它想象成一个超级大的社交网络。不过…

Spring Cloud 微服务注册

1&#xff1a;Intellij 新建服务 user-service 2&#xff1a;pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…

【HTML】可展开的顶层菜单栏

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>导航栏下拉&l…

LabVIEW环境中等待FPGA模块初始化完成

这个程序使用的是LabVIEW环境中的FPGA模块和I/O模块初始化功能&#xff0c;主要实现等待FAM&#xff08;Field-Programmable Gate Array Module&#xff0c;FPGA模块&#xff09;的初始化完成&#xff0c;并处理初始化过程中的错误。让我们逐步分析各部分的功能&#xff1a; 1.…

C++常见异常汇总(四): No package ‘casadi‘ found

文章目录 1、No package adolc found2、Could not find a package configuration file provided by "grid_map_msgs"3、 No package casadi found4、No package absl found 1、No package ‘adolc’ found git clone https://github.com/coin-or/ADOL-C.gitcd ADOL-…

好代码源码网整站数据打包代码

最新数据库版本的好代码资源网整站数据打包代码&#xff0c;最新资源数据&#xff0c;所有数据都有效可用。数据都是更新到最新的2024年6月份的数据。完全明文无加密后门版本定制开发的wordpres主题&#xff0c;无需独立服务器&#xff0c;虚拟主机也可以完美运营&#xff0c;只…

Redis 管道的神奇力量

今天我们要来探索一个 Redis 中非常强大且实用的特性——管道&#xff08;Pipeline&#xff09;。如果你想让你的 Redis 操作更加高效&#xff0c;那么这篇文章绝对值得一读。 一、Redis 管道是什么 Redis 管道是一种在客户端和服务器之间批量执行命令的技术。它允许客户端将…

Python中的单下划线和双下划线使用规则

引言 Python 遵循一些关键的命名规则&#xff0c;这些规则涉及到使用单个或双下划线。通过这些规则&#xff0c;你可以在应用程序接口&#xff08;API&#xff09;中区分可访问的和不可访问的标识符&#xff0c;编写适用于继承的稳健类&#xff0c;以及防止命名冲突等。 遵守这…

Sysbench性能测试工具的安装与使用

目录 前言1. Sysbench介绍2. 下载与安装2.1 系统准备2.2 安装Sysbench 3. Sysbench命令参数详解3.1 CPU测试3.2 内存测试3.3 磁盘I/O测试3.4 数据库测试 4. 实例演示&#xff1a;多维度性能测试4.1 CPU性能测试示例4.2 数据库性能测试示例4.3 内存网络性能测试4.4 磁盘I/O网络性…

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾&#xff0c;且有不超过 h 个下标满足条件的最长好子序列的长度&#xff08;0<h<k&#xff09;&#xff0c;二维数组dp初始值全为1 解题过程 状态转换方程&#xff1a; 1.nums[i]nums[j],dp[i,h]Math.max(dp[i,h],dp[j,h]1) 2.num…

深入RabbitMQ世界:探索3种队列、4种交换机、7大工作模式及常见概念

文章目录 文章导图RabbitMQ架构及相关概念四大核心概念名词解读 七大工作模式及四大交换机类型0、前置了解-默认交换机DirectExchange1、简单模式(Simple Queue)-默认DirectExchange2、 工作队列模式(Work Queues)-默认DirectExchange3、发布/订阅模式(Publish/Subscribe)-Fano…