前言
随着前端的不断探索和进化,传统的前端“三剑客”技术也是日新月异,而且彼此之间联系越来越紧密。本文会帮你复习一下前端的基本知识,“温故而知新”,同时也扩展交流一下周边有趣的小知识。
1.前端语言的基本能力
简介
- HTML构建人的骨骼
- CSS构建人的皮肤
- JavaScript作为肌肉控制人的身体和运动能力
- 三者结合集合成一个系统,缺一不可
HTML
CSS
- css语法方式
- css选择器
- css常用伪元素和伪类选择器
- css文档查看方式
- 左侧为css分类
- 中间详细语法说明
- 右侧解释每个单位的详细作用
JavaScript
- 借鉴C语言的基本语法
- 借鉴Java语言的数据类型和内存管理
- 借鉴Scheme语言,将函数提升到“第一等公民”(first class)的地位
- 借鉴Self语言,使用基于原型(prototype)的继承机制
-
JavaScript通用作用
- 校验用户输入
- 简单的客户端计算
- 交互控制
- 平台无关性
- 处理数据和时间
- 生成HTML内容
- 检测用户浏览器
-
现代JavaScript的功能
- 块级作用域变量Let/Const
- 箭头函数
- 字符串模板
- 扩展数组方法
- 默认参数
- 变量重命名
-
JavaScript生态产品
-
JavaScript基本语法
Browser
- 渲染引擎的运行过程
- JavaScript引擎流程
2.前端语言的协作配合
Trending
CSS in HTML
- CSS编写的三种方式
- 内联样式,直接在标签内部通过style属性来设置
- 内部样式,在标签内添加css样式
- 外部样式,单独放在.css文件中,从外部引入
JavaScript in HTML
- 在开头渲染
- vue模板写法
- 行内写法
--
HTML in JavaScript
- 原生js写法
- 外部导入
- 现代JSX写法
CSS in JavaScript
- 通过DOM元素修改属性
- React JSX引入class,因class是JavaScript是保留关键字,所以用className表示
- vue
- 解决不同文件类名的冲突问题
- CSS Module
- JSS(JavaScript Style Sheets): JSS 是一种将 CSS 样式以 JavaScript 对象的形式编写和管理的技术。它允许我们在 JavaScript 代码中动态生成和修改样式
3.你不知道的HTML(5)
HTML DTD
- HTML并非图灵完备。它只是一门标记语言
HTML全部标签分类
HTML head标签
HTML body功能性标签
HTML ARIA
- 了解ARIA并非只是为了供盲人阅读,它可以为我们设计UI系统提供指导意义
HTML5
HTML5 语义化标签
- 建议:用对比不用好,不用比用错好,虽然语义化标签名字各不相同,但其实本质都是div标签
HTML5表单增强
HTML5存储
- Cookies:Cookies 是存储在客户端计算机上的小文件,用于存储用户与网站之间的数据。常用于记录用户的登录状态、购物车内容等信息。
- Local Storage:Local Storage 是 HTML5 新增的一种 Web 存储机制,用于在客户端存储持久化数据。与 Cookies 不同,Local Storage 的数据不会在每次请求时被发送到服务器,而是保存在客户端的本地存储空间中。
- Session Storage:Session Storage 与 Local Storage 类似,也是用于在客户端存储数据。不同之处在于,Session Storage 的数据只在用户会话期间有效,即在浏览器窗口或标签页关闭时自动清除。
HTML5 IndexedDB
IndexedDB 是 HTML5 中新增的一种客户端存储机制,用于在浏览器中存储大量的结构化数据。它是一种键值对存储方式,类似于关系型数据库,可以通过索引快速访问数据。
IndexedDB 的主要特点包括:
- 1.异步访问:IndexedDB 的读写操作是异步进行的,不会阻塞主线程,从而提高了页面的性能。
- 2.持事务:IndexedDB 支持事务,可以确保数据的一致性和完整性。
- 3.支持索引:IndexedDB 支持多个索引,可以提高数据的查询效率。
-
- 可存储大量数据:IndexedDB 可以存储大量的结构化数据,不会受到存储容量的限制。
- 5.支持离线应用:IndexedDB 可以使得应用在离线状态下也能够正常工作,从而提高用户体验。
HTML5 PWA&
- PWA
- PWA 是一种 Web 应用程序的开发方式,旨在提供类似于原生应用程序的用户体验。它使用 Web 技术开发,可以在任何设备上运行,包括桌面、移动设备和平板电脑
- AMP
- AMP(Accelerated Mobile Pages):AMP 是一种 Web 页面的开发方式,旨在提供快速的加载速度和优化的移动体验。它使用精简的 HTML 和 CSS,以及 AMP JavaScript 库来实现
HTML5 Audio
HTML5 Video
HTML5 二进制
HTML5 API
- GeoLocation API
- Drag&Frop API
HTML5 Web Worker
HTML5 Web Socket
- Web Socket 是一种在 Web 应用程序中实现实时通信的协议。它提供了一种双向通信机制,允许客户端和服务器之间进行实时的数据传输。与传统的 HTTP 请求/响应模式不同,Web Socket 采用了一种持久化的连接,可以在客户端和服务器之间保持通信通道,从而实现实时通信的功能。
- Web Socket 协议基于 TCP 协议实现,使用了类似 HTTP 协议的握手过程来建立连接。客户端和服务器之间的通信采用帧(Frame)的形式进行,每个帧包含一个标识、一些附加信息和一段数据。客户端和服务器可以通过发送不同类型的帧来实现不同的功能,比如文本消息、二进制数据、ping-pong 等。
- Web Socket 协议可以与任何支持该协议的服务器进行通信,包括自己开发的服务器和第三方提供的服务。它通常被用于实现实时聊天室、实时游戏、实时协作等应用场景。由于其实时性和高效性,越来越多的 Web 应用程序开始采用 Web Socket 技术来实现实时通信的功能
HTML5 Shadow DOM
- Shadow DOM 是 Web Components 技术中的一部分,用于实现 Web 页面上的组件化开发。它允许开发者将 HTML、CSS 和 JavaScript 封装到一个独立的、可重用的组件中,以便在不同的页面和应用程序中进行复用。
HTML5 Web Componet
- HTML5 的 Web Component 是一种基于标准 Web 技术实现的组件化开发模型,它由三个技术规范组成:Custom Elements、Shadow DOM 和 HTML Templates。
HTML5 SVG&Canvas
WebGL&WebGPU
- WebGL 是一种在浏览器中呈现 3D 和 2D 图形的 JavaScript API,它是基于 OpenGL ES 2.0 的标准,支持硬件加速,并可与 HTML、CSS 和 JavaScript 无缝集成。使用 WebGL,开发者可以在浏览器中创建高性能的 3D 游戏、可视化工具和数据展示应用等。
HTML5 WebAssembly
- WebAssembly(WASM)是一种新的编码方式,可以直接在浏览器中运行
4.扩展分享
Web的风靡
大前端
- Android通过XML方式编译一个View
- IOS支持多个View的层叠,来构建不同的图层
- 微信小程序通过特殊语法的运用,经过Json的方式来构建应用
MVC & MVVM & MVP
-
MVC
- Model:模型层,维护渲染界面所需要的数据层
- View:视图层,用于与用户实现交互的页面
- Controller:控制层,用于连接Model层和View层,完成Model层和View层的交互。还可以处理页面逻辑,它接收并处理来自用户的请求,并将Model返回给用户
-
MVP
- 从MVC模式演变而来,将Controller改名为Presenter的同时改变了通信方向
- 从MVC模式演变而来,将Controller改名为Presenter的同时改变了通信方向
-
MVVM
- 采用了双向绑定,View的变动,自动反映在ViewModel
- ViewModel层把Model和View层的数据同步自动了,解决了MVP框架中的数据同步比较麻烦的问题,不仅减轻了ViewModel层的压力,同时使得数据处理更加方便-只需告诉View层展示的数据是Model层中的哪一部分即可
引用
- 字节内部课:前端语言串讲-字节前端初阶训练营