概念:前端(Front-End),也称为客户端(Client-Side),指的是用户在使用网站或Web应用时直接看到并与之交互的部分。它涵盖了屏幕上的一切内容,从文字、图片、按钮、布局到动画效果 一个简单的比喻:
前端开发的核心目标是:打造一个在视觉上吸引人、交互流畅、性能优异且可访问性强的用户体验(User Experience, UX)
任何网站或应用的前端都构建在三大核心技术之上:
1.HTML (超文本标记语言) 2.CSS (层叠样式表) 3.JavaScript (JS)
HTML (超文本标记语言)
HTML 标签通常由以下几个部分组成:
在Visual Studio Code中创建xxx.html文件,输入英文符号
!后点击tab或者enter键,能自动生成代码的主体框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
</body>
</html>
作用:用于在源代码中添加说明或临时隐藏代码,不会在浏览器中显示快捷键:Ctrl + /
<!-- 这是一段代码示例 -->
作用:定义标题的标签,从< h1 >到< h6 >,数字越小表示层级越高,重要性越强
语法:
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>段落标签p
作用:定义文本段落,浏览器会自动在段落前后添加空白间距,使内容更易阅读

语法:
<p>
第一段,这是第一段的内容
</p>
<p>
第二段,这是第二段的内容
</p>换行标签br
作用:强制换行,通常用于段落内或需要手动分隔内容的场景

语法:
<p>
第一段,这是第一行的内容</br>
第一段,这是第二行的内容</br>
第一段,这是第三行的内容</br>
</p>
strong:不仅会使文本加粗,还在语义上表示重要内容,适合用于强调关键信息b:用于将文本加粗显示,但不具有语义上的强调作用,仅表示样式上的加粗

语法:
<strong>这段文字会加粗并具有强调语义</strong></br>
<b>这段文字会加粗显示</b>在 HTML5 中,< strong > 更推荐用于强调重要内容,而 < b > 仅用于样式加粗
em:表示强调内容,浏览器默认渲染为斜体,但实际语义是强调,适合重要文本i:仅表示样式倾斜,无强调语义,常用于图标、术语或特殊文本

语法:
<!-- 使用<em>强调重要内容 -->
<p>
请务必在<em>周五之前</em>提交报告
</p>
<!-- 使用<i>实现无语义斜体 -->
<p>
术语<i>量子纠缠</i>源自物理学
</p>
del:表示文档中已被删除的文本,通常用于标记内容的更新或修订,浏览器默认会为 标签内的文本添加删除线,表示内容已被移除s:表示不再准确或不再相关的内容,浏览器默认也会为标签内的文本添加删除线,但语义上更侧重于失效或过时,而非删除

语法:
<del>这段文本已被删除</del></br>
<s>这段文本已过时</s>
ins:表示文档中新增的内容,通常用于版本对比或内容更新,浏览器默认渲染为下划线u:仅表示纯视觉上的下划线,无特定逻辑含义

语法:
<p>
原价:<del>100元</del></br>
现价:<ins>80元</ins>
</p>
<p>
请特别注意:<u>截止日期</u>为本周五
</p>
作用:用于在网页上嵌入图像的核心元素,通过src属性指定图片路径,alt属性提供替代文本专属属性:


语法:
<img src="./R-C.jpg" alt="图片加载失败" title="这是一张图片">
作用:是 HTML 中用于创建超链接的标签,通常用于跳转到其他页面、文件或同一页面的某个锚点专属属性:
语法:
<!-- 新标签页打开 -->
<a href="https://www.baidu.com" target="_blank">跳转到百度</a>
作用:在HTML中定义表格,内部包含行(< tr >)、表头单元格(< th >)和数据单元格(< td >)

专属属性:

语法:
<table>
<thead>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</thead>
<tbody>
<tr>
<td>张三</td>
<!-- 纵向合并2格 -->
<td rowspan="2">男</td>
<td>3</td>
</tr>
<tr>
<td>李四</td>
<td>4</td>
</tr>
<tr>
<!-- 横向合并2格 -->
<td colspan="2">王五/女</td>
<td>5</td>
</tr>
</tbody>
</table>
作用:用于展示一组没有特定顺序的项目,通常以项目符号圆点、方块等标记每一项(默认显示为圆点符号)。适用于内容并列、无优先级区分的情况专属属性:

语法:
<ul type="square">
<li>内容1</li>
<li>内容2</li>
<li>内容3</li>
</ul>
作用:用于展示需要按顺序排列的项目,通常以数字或字母标记每一项(默认显示为数字序号)。适用于步骤、排名等有明确顺序的场景专属属性:

语法:
<ol type="A" start="10">
<li>内容1</li>
<li>内容2</li>
<li>内容3</li>
</ol>
作用:用于创建用户输入的表单,通常包含输入框、按钮等元素,用于收集用户数据并提交到服务器专属属性:
语法:
<form action="test.html" method="post" target="_blank">
<!-- form的内容 -->
</form>
作用:是HTML表单的核心元素,用于创建交互式控件,允许用户输入数据。其类型由type属性决定,未指定时默认为text专属属性:
语法:
姓名<input type="text"><br>
密码<input type="password"><br>
<!-- 单选框 -->
性别<input type="radio" name="gender">男
<input type="radio" name="gender" checked>女
<input type="radio" name="gender">保密<br>
<!-- 复选框 -->
爱好<input type="checkbox">吃饭
<input type="checkbox">睡觉
<input type="checkbox">玩游戏</br>
<input type="button" value="这是一个普通按钮" onclick="alert('Hello')"><br>
<input type="submit" value="提交">
<input type="reset" value="清空">
<input type="file" value="选择文件">
作用:通过将label与表单元素关联,用户可以点击标签来聚焦或选中对应的控件,提升用户体验和可访问性
语法:
隐式关联:将表单控件包裹在label标签内,无需使用for属性
<label>
用户名:
<input type="text" name="username">
</label>显式关联:通过for属性与表单元素的id属性关联
<label for="male">男</label>
<input type="radio" name="sex" id="male">
<label for="female">女</label>
<input type="radio" name="sex" id="female">
作用:用于创建下拉列表,用户可以从预定义的选项中选择一个或多个值。通常与 < option > 标签配合使用专属属性:

语法:
<select name="" id="">
<option value="">--请选择年份--</option>
<option value="" selected>2021</option>
<option value="">2022</option>
<option value="">2023</option>
</select>
作用:用于创建多行文本输入框专属属性:

语法:
<textarea cols="20" rows="10" placeholder="请输入"></textarea>
作用:是HTML中的一个块级元素,用于将文档分割为独立的、可样式化的部分。它本身不携带任何语义,主要用于布局和样式控制
作用:是HTML中的一个行内元素,通常用于对文本或其他行内元素进行分组或样式化。它本身不会带来任何视觉变化,但可以与CSS或JavaScript结合使用,实现对特定内容的精确控制
CSS (层叠样式表)
内联样式:直接在HTML元素的style属性中编写CSS,优先级最高但不利于维护内部样式表:在HTML文件的< head >标签内通过< style >标签定义CSS,适用于单页面样式外部样式表:通过< link >标签引入独立的.css文件,实现样式与结构分离,推荐使用
作用:是CSS中用于定位和选择HTML元素的工具,允许开发者对特定元素应用样式或行为
类型:
<!-- 内部样式表 -->
<style>
div{
<!-- 自定义属性 -->
}
</style><style>
.className{
<!-- 自定义属性 -->
}
</style><style>
#id{
<!-- 自定义属性 -->
}
</style><style>
*{
<!-- 自定义属性 -->
}
</style>
JavaScript (JS)
<button onclick="alert('行内式JS')">点击</button><script>
console.log('内嵌式JS');
</script><script src="script.js"></script>
作用:用于在浏览器中弹出警告框,显示指定的消息。会阻塞代码执行,直到用户点击确定(仅支持字符串显示,复杂对象会被转换为[object Object])

语法:
alert("操作成功!");
作用:用于在浏览器的开发者工具控制台输出信息,支持多种日志级别(如 log、warn、error)

语法:
console.log("调试信息"); // 输出普通日志
console.warn("警告内容"); // 输出黄色警告
console.error("错误详情"); // 输出红色错误
作用:用于显示一个对话框,提示用户输入文本。它会阻塞代码执行,直到用户关闭对话框
语法:
let userInput = prompt(message, defaultText);
返回值:用户点击确定按钮时,prompt返回输入框中的字符串内容;如果用户点击取消按钮或关闭对话框,则返回null

var:函数作用域,可重新赋值,可重新声明,存在变量提升let:块级作用域,可重新赋值,不可重新声明const:块级作用域,不可重新赋值,不可重新声明函数作用域:指的是在函数内部声明的变量,仅在该函数内部可见(作用域大于Java中的局部变量的作用域)
块级作用域:指的是在代码块内部声明的变量,仅在其所在的代码块内有效(更接近Java中的局部变量的作用域)
变量提升:指的是在代码执行前,变量和函数的声明会被提升到当前作用域的顶部。需要注意的是,变量提升仅作用于声明部分,而赋值操作会保留在原来的位置

函数声明:JavaScript函数通过function关键字定义
function functionName(parameters) {
//函数体
return value; //可选
}箭头函数(Arrow Function)是ES6引入的简洁函数语法,与传统函数相比具有独特特性
// 传统函数
const square = function(x) {
return x * x;
};
// 箭头函数
const square = x => x * x; //隐式返回结果,相当于return x * xconst person = {
name: 'John',
age: 30,
greet: function() {
console.log('Hello!');
}
};const person = new Object();
person.name = 'John';
person.age = 30;
person.greet = function(){
console.log('Hello!');
}//构造函数
function Person(name,age){
this.name = name;
this.age = age;
this.greet = function(){
console.log('Hello');
}
}
const person = new Person('John',30);console.log(person.name);//'John'
console.log(person.age);//30console.log(person['name']);//'John'
console.log(person['age']);//30