目录
- 前端语言的基本能力
- 前端语言的协作配合
- 你不知道的HTML5
- 拓展分享
前端语言的基本能力
即:HTML、CSS、JS三剑客
-
HTML:构建网页的框架和结构,优化搜索引擎排名(SEO)的关键。
-
CSS(层叠样式表):为网页添加样式,使其更加美观。
-
JS:前端开发的灵魂,赋予网页动态交互的能力。
CSS选择器
- 类选择器
- id选择器
- 通配符选择器
- 伪元素选择器(::)//元素内容
p::after {
content:'';
clear:both;
}
//选择p的第一个字母
p::first-letter {
color:#666;
}
//选择p的第一行
p::first-line {
color:'#555'
}
- 标签选择器
- 伪类选择器(:)//元素自身状态
//点击时(悬浮在a标签上)
a:hover {
color:pink;
}
//链接的原始状态
a:link {
color:red;
}
//按钮被禁言时,里面字的颜色是蓝色
button:disabled {
color:bule;
}
div:nth-child(2) {
width:300px;
}
-
后代选择器
-
兄弟选择器(到指定的元素后面的所有满足条件的兄弟元素)
h1 ~ p {
color: skyblue;
}
<h1>你好</h1>
<p>1</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
9. 属性选择器
div[] {
}
- 相邻选择器(选择紧接在某个元素后的元素,并且二者具有相同的父级元素)
//h1相邻的div的内容都变成了红色
h1+div {
color:red;
}
<h1>你好</h1>
<div>111111111</div>
还有更多:
JavaScript基本数据类型
- 基本数据类型包括:
String、Number、Boolean、Undefined、Null、Symbol和BigInt。
JavaScript复杂数据类型
- 复杂数据类型主要是
Object,包括数组和函数等。
Symbol和bigInt解析:
Symbol
-
定义:Symbol 是一种新的原始数据类型,表示独一无二的值,主要用于对象属性的唯一标识符。
-
创建:通过
Symbol()函数创建,每个 Symbol 值都是唯一的,即使它们具有相同的描述。const sym1 = Symbol('description'); const sym2 = Symbol('description'); console.log(sym1 === sym2); // false -
用途:
- 防止属性名冲突:使用 Symbol 作为对象的属性名,可以避免与其他属性名冲突。
- 私有属性:Symbol 创建的属性不会被常规的
for...in循环或Object.keys()方法列出,提供了一种实现私有属性的方法。
BigInt
-
定义:BigInt 是一种新的原始数据类型,表示任意大小的整数,超出了 Number 类型的安全整数范围(-2^53 + 1 到 2^53 - 1)。
-
创建:可以通过在整数后面添加
n来创建 BigInt,也可以使用BigInt()函数。const bigInt1 = 123456789012345678901234567890n; const bigInt2 = BigInt("123456789012345678901234567890"); console.log(bigInt1 + bigInt2); // 246913578024691357802469135780n -
用途:
- 处理大整数:在需要进行大数计算时,如金融计算、加密等场景,BigInt 提供了高精度的整数表示。
- 大数数组:可以用于处理大数据量的数组计算,避免 Number 类型精度丢失的问题。
注意事项
- 类型转换:Symbol 和 BigInt 不能隐式转换为其他数据类型,使用时需要显式转换。
- 与 Number 不兼容:BigInt 不能与 Number 类型直接进行运算,需先进行类型转换。
示例代码
// Symbol 示例
const uniqueKey = Symbol('key');
const obj = {
[uniqueKey]: 'value'
};
console.log(obj[uniqueKey]); // 'value'
// BigInt 示例
const bigIntValue = 9007199254740991n; // 大于 Number.MAX_SAFE_INTEGER
const sum = bigIntValue + 1n;
console.log(sum); // 9007199254740992n
如何在浏览器上运行??
浏览器一般分为两种引擎:渲染引擎(加载页面)和js引擎
(渲染引擎)
(v8引擎)
继承树:
DOM的事件机制:
事件机制:
宏任务:整体代码script、setTimeout、setInterval、setImmediate(Node.js)、i/o操作(输入输出,比如读取文件操作、网络请求)、ui render(dom渲染,即更改代码重新渲染dom的过程)、异步ajax等
微任务:Promise(then、catch、finally)、async/await、process.nextTick(Node.js)、Object.observe(⽤来实时监测js中对象的变化,已废弃)、 MutationObserver(监听DOM树的变化) 你不知道的HTML5
HTML5技术全览:
语义化标签:
HTML5表单控件:
(拓展:IndexDB)
拓展分享
前端开发的领域广泛,HTML5 的新特性仅仅是一个开始。随着技术的发展,还有很多值得探索的领域。
- WebSocket 和 Web Worker:WebSocket 提供了实时双向通信的能力,适用于实时应用。Web Worker 允许在后台线程中执行脚本,提高页面性能。
- MVC、MVVM、MVP:这些设计模式为前端开发提供了架构指导,有助于分离关注点,提高代码的可维护性和可重用性。
- 可视化技术:WebGL 和 WebGPU 为前端开发者提供了强大的图形处理能力,能够实现高性能的图形渲染和复杂的可视化效果。
(你不知道的HTML5有很多需要拓展学习的地方)