前端语言学习总结|青训营

108 阅读5分钟

前端语言的基本能力

前端三剑客:

HTML、CSS、Javascript

· HTML:构建框架结构,web页面的起始

· CSS:给网站添加样式,

· Javascript:交互体验、还可以处理复杂的函数

形象表示:

屏幕截图 2023-07-26 101423.png

HTML

HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

使用HTML,将所需要表达的信息按某种规则写成html文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即我们所见到的网页。

CSS

层叠样式表(Cascading Style Sheets),是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

JavaScript

JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

Javascript是单线程的

其基本类型包括:

                       1.String

                       2.Number

                       3.Boolean

                       4.Null

                       5.Undefined

                       6.Symbol

7.Object -Array

-Function

屏幕截图 2023-07-26 102452.png

var:关键字; a:变量名; 7+"2":表达式(做计算时会统一类型)

浏览器包括渲染引擎和Javascript引擎

屏幕截图 2023-07-26 103015.png

渲染引擎主要负责加载页面

前端语言的协作配合

屏幕截图 2023-07-26 141112.png

CSS/JavaScript in HTML

1)CSS in HTML

lnline 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>

2)Javascript in HTML

<button onclick="showContent()">Show hidden content</button>

    <template>
      <h2>Flower</h2>
      <img src="img_white_flower.jpg" width="214" height="204">
    </template>

    <script>
      function showContent(){
        var temp=document.getElementsByTagName("template")[0];
        var clon=temp.content.cloneNode(true);
        document.body.appendChild(clon);
      }
    </script>

屏幕截图 2023-07-26 143700.png

HTML/CSS in Javascript

1)HTML in Javascript

 <html>
      <body onload="renderHello()">
        <div id="target">Loading...</div>
        <script id="template" type="x-tmpl-mustache">
          Hello{{name}}!
          </script>
          
          <script src="https://unpkg.com/mustache@latest"></script>
          <script src="render.js"></script>
      </body>
    </html>

2)CSS in Javascript

屏幕截图 2023-07-26 144425.png

HTML

HTML并非图灵完备,只是一门标记语言

HTML不是一种编程语言,而是一种标记语言,标记语言是一套标记标签,HTML文档也叫做web页面

屏幕截图 2023-07-26 104210.png ~HTML 元素以开始标签起始 ~HTML 元素以结束标签终止 ~元素的内容是开始标签与结束标签之间的内容 ~某些 HTML 元素具有空内容(empty content) ~空元素在开始标签中进行关闭(以开始标签的结束而结束) ~大多数 HTML 元素可拥有属性

标签分类

屏幕截图 2023-07-26 104324.png head标签

屏幕截图 2023-07-26 104405.png 功能标签

屏幕截图 2023-07-26 104450.png

HTML ARIA

ARIA并非只是为了供盲人阅读,它可以为我们设计UI系统提供指导意义

屏幕截图 2023-07-26 104751.png

HTML5

定义了一些规范和特性

HTML5储存

屏幕截图 2023-07-26 110517.png

AMP主要对搜索引擎来用

音频
  //创建了一个音频上下文
    const audioCtx = new (window.AusioContext||window.webkitAudioContext);
    //创建了一个正弦振荡器
    const osci = audioCtx.createOscillator();
    //创建一个音量增幅器
    const gain = audioCtx.createGain();
    //正弦振荡器关联音量增幅器
    osci.connect(gain);
    //音量增幅器关联音频上下文的音频输出器
    gain.connect(audioCtx.destination);
    //开始正弦波动
    osci.star();

屏幕截图 2023-07-26 133310.png

HTML5 web worker

Web Worker 为 Web 内容在后台线程中运行脚本提供了一种简单的方法。线程可以执行任务而不干扰用户界面。此外,它们可以使用 XMLHttpRequest(尽管 responseXML 和 channel 属性总是为空)或 fetch(没有这些限制)执行 I/O。一旦创建,一个 worker 可以将消息发送到创建它的 JavaScript 代码,通过将消息发布到该代码指定的事件处理器(反之亦然)。

HTML5 SVG & Canvas

Canvas

· 通过 js 来绘制 2D图形。 · canvas 图像单位是像素。 · canvas 图像绘制完毕之后,浏览器将不再关注它,如果位置发生变换,就需要重新绘制

SVG

· SVG使用 XML 描述的2D图像。 · SVG是基于 xml 的,所以 svg 中绘制图形还是使用的元素,js 给元素任意添加事件。 · SVG绘制的图像是一个对象,如果对象的属性发生改变,浏览器将重新绘制图形。

区别

1、svg 是一种矢量图,而 canvas 依赖于分辨率。所以 svg 放大不会失真,而 canvas 绘制的图形会失真。 2、svg 支持事件处理器; canvas 不支持事件处理器。 3、svg 中的文字独立于图像,文字可保留,可编辑和可搜索;canvas 的文本渲染能力弱。 4、canvas 适合图像密集型的游戏,频繁地重绘图像;svg 绘制的复杂度高时减慢渲染的速度。 5、canvas 绘制的图形可以多种格式 (jpg、png) 保存图片;svg 绘制的只能以 .svg 格式保存,使用时可以引入 html 文件。 6、canvas 适合开发游戏;svg 不适合游戏应用。

webGL & webGPU

屏幕截图 2023-07-26 134213.png

HTML5 webassembly

webassembly(WASM)是一种新的编码方式,可以直接在浏览器中运行

屏幕截图 2023-07-26 134548.png

屏幕截图 2023-07-26 134600.png

拓展分享

MVC & MVVM & MVP

MVC,MVP和MVVM都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式。不同于设计模式(Design Pattern),只是为了解决一类问题而总结出的抽象方法,一种架构模式往往使用了多种设计模式。

MVC :将应用抽象为数据层(Model)、视图(View)、逻辑(Controller),这样数据、视图、逻辑的代码各自汇聚。

MVVM:MVVM设计了VM层,即ViewModel层,ViewModel自动同步数据到视图,用VM代替P之后,MVVM自动从Model映射到View(实现方式是模板渲染),不需要用户手动操作视图,这样代码更简单不易出错,代码更好阅读和维护。

MVP:则在MVC基础上,限定了通信方式,即Model和View之间不直接通信,都通过Presenter通信,这个Presenter和MVC中的Controller一脉相承,代表应用中的逻辑层。

课堂总结

屏幕截图 2023-07-26 135022.png 经过今天的学习,对前端三件套基本有所了解,也知道了它们之间的一些关联,但是有很多地方还是不懂得,还需要继续努力学习