前端语言串讲 | 青训营笔记

41 阅读2分钟

前端三剑客

  • HTML(Hypertext Markup Language)
  • CSS(Cascading Style Sheet)
  • JavaScript

浏览器渲染

HTTP -> 构建DOM树 -> 计算CSS树 -> 排版 -> 渲染合成 -> 绘制

CSS in HTML

inline css

<p style="color: blue;">This is a paragraph.</p>

internal css

<head>
    <style type = text/css>
        body {background-color: blue;}
        p {color: yellow;}
    </style>
</head>

external css

<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>

事件捕获和事件冒泡

首先进行事件捕获

graph TD
Document --> HTML
HTML --> body
body --> div
div --> button

捕获到之后进行事件冒泡

graph TD
button --> div
div --> body
body --> HTML
HTML --> Document

HTML in JavaScript

function renderHello() {
    var template = document.getElementById('template').innerHTML;
    var rendered = Mustache.render(template, {name: 'Luke'});
    document.getElementById('target').innerHTML = rendered;
}

JSX(一种JavaScript语法扩展,最先应用在React框架中)

class HelloMessage extends React.Component {
    render() {
        return {
            <div>
                Hello {this.props.name}
            </div>
        }
    }
}

ReactDOM.render(
    <HelloMessage name="Taylor" />,
    mountNode
)

HTML_DTD

基本语法

  • 标签(元素)Element<tagname></tagname>
  • 文本Text
  • 注释Comment<!--comment-->
  • DTD Document Type Defination<!Doctype html>
  • 处理信息ProcessingInstruction<?a 1?>

HTML_head标签

head: title, base, meta, link, script

  • title:标题,全局唯一
  • base:向页面所有相对URL提供前缀;全局唯一不建议使用
  • meta:通常是约定好的键值对;例外:charset、http-equiv
  • link:rel决定类型,href决定引入决定
  • scrip:type指定MIME类型;可内嵌代码,可外链文件

HTML5_语义化标签

header, nav, main, article, section, footer

HTML5_存储

image.png

HTML5_indexDB

image.png

HTML5_API

  • Drag and Drop 拖拽释放
  • Geolocation 获取地理位置

Drag 和 Drop在一次面试中被问过,而我只是听说过这个概念,完全没用过,所以就尬住了。于是对方又提问了不适用API的实现方式,但也答得一知半解,这要就是没怎么接触过这类情况

HTML_Web Worker

一个多线程方式

HTML_Shadow DOM

保证黑箱,对外不可见也不可更改,是Web component必要的一个环节

HTML_WebGPU

着色器语言

Web的风靡

  • 对用户友好
  1. 无需安装
  2. 无需强大硬件
  3. 升级非常方便
  4. 容错率强
  5. 传播方便
  • 对开发者友好
  1. 心智模型成熟
  2. 丰富的API能力
  3. 框架、工具标准化
  4. 开发、调试简单
  5. 具备跨平台能力
  • 领域成熟度
  1. whatwg/w3c/ecma
  2. 浏览器厂商整合
  3. 各类Web应用风靡
  4. 商用平面设计标准化
  5. 全面组件化
  • 未来的方向
  1. 效率工具(Rust)
  2. Js 2 Anything
  3. 服务端容器化
  4. 低(无)代码站点
  5. 大前端的统一
  6. 三维可视化

总结

本节课程串讲了前端三剑客的基本使用和语法,着重讲解了HTML和HTML5新特性,可以看出前端语言从离散的模式渐渐向着统一融合,未来的趋势也一定是统一整合。