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

189 阅读6分钟

前端语言串讲

前端语言的基本能力

对于制作一个网页而言,HTML、CSS和JavaScript分别代表了结构、样式和行为,结构是网页的骨架,样式是网页的外观,行为是网页的交互逻辑。

image.png

  1. HTML

    HTML主要负责构建框架结构,包含控制布局,为web设计师提供一个层次结构,是对前端开发最重要的基本语言,是构成网站的重要组成部分,负责 Web 的结构部分,用于指示浏览器网站中的元素,向 CSS 和 javascript 文件的链接

<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> 
       <meta name="keywords" content="qtf">
       <meta name="description" content="qtf的home">
       <title>HOME</title> 
</head>
<body> 
Hello World! 
</body>
</html>
  1. CSS

    CSS 的作用是美化界面。它负责字体、颜色、图像以及页面布局。它可以是内联文件,也可以是外部文件。

h1 {color:blue;front-size:12px;}
  1. Javascript

    JavaScript使页面更具交互性。JavaScript 把更多的功能附加到网站。从而使你可以轻松构建地图、在线游戏和交互式网站。但是,如果没有 HTML 和 CSS,JavaScript 是无法运行的。

    (1)借鉴C语言的基本语法;

    (2)借鉴Java语言的数据类型和内存管理;

    (3)借鉴Scheme语言,将函数提升到"第一等公民" (first class)的地位;

    (4)借鉴Self语言,使用基于原型(prototype) 的继承机制。

基本语法:

  • Seven types
  1. String 2. Number 3.Boolean 4.Null 5.Undefined 6.Symbol 7.Object
  • Basic Vocabulary
var  a = 7+"2"
  • Object
var user={
    name: "Aziz Ali",
    yearOfBirth:1988,
    calculateAge:Function()
}

运行

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

前端语言的协作配合

CSS样式

  1. 内联(行内)样式:
    写在标签的属性里面,直接使用
  2. 内部样式表:
    样式写在<style> </style>标签之间
  3. 外部样式表:
    为一个独立的.css文件,需要通过<link href="路径"/>导入以便使用
优先级

优先级:(就近原则)内联样式>内部样式表>外部样式表

Javascript in Html

使用<script>元素将JavaScript插入HTML页面。<script>元素的src属性可以设置为存在HTML页面所在域之外的完整URL,如以下示例所示:

  <script src="![]()http://www.somewhere.com/afile.js"></script>  

当浏览器解析该资源时,它将向src属性中指定的路径发送GET请求以检索该资源(可能是JavaScript文件)。 最初的请求不受浏览器跨域限制的约束,但是返回并执行的任何JavaScript都会。 当然,此请求仍受父页面的HTTP / HTTPS协议的约束。

  • 在HTML里嵌入JavaScript

在HTML文档里嵌入客户端JavaScript代码有4中方法:

  1. 内嵌,放置在<script></script>标签之间
  2. 放置在有<script>标签的src属性指定的外部文件中
  3. 放置自HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定它
  4. 放在一个URL里,这个URL使用特殊的协议”javascript“协议

CSS inJavaScript

用 JavaScript 对 CSS 进行赋能,除了解决上述问题以外,还具备以下优点:

  1. 组件化,方便开发维护和测试
  2. JavaScript 和 CSS 可以方便的共享变量和方法

CSS Module

模块化 CSS,将依赖的 CSS 文件以模块的形式注入到 JavaScript 里,基本上解决了全局污染、命名混乱、样式重用和冗余的问题,但是还是以文档方式组织,维护起来比较麻烦。 目的:解决 CSS 中全局作用域的问题

你不知道的HTML(5)

HTML DTD

基本语法

  1. 标签(元素)Element
  2. 文本 Text
  3. 注释 Comment
  4. DTD Document Type Defination
  5. 处理信息 ProcessingInstruction

HTML标签分类

  1. 文档型

    <!DOCTYPE> <head> <body>

  2. 闭合型

闭合标签 <p> </p>

空标签 <br> <img> <input>

  1. 换行型

块级标签 <div> <h1>...<h6>

行内标签 <span> <a>

  1. H5新元素型 语义化标签

媒体标签 <video> <audio> <embed>

表单标签 <input type="date"> <input type="color">

功能标签 <canvas> <progress>

HTML head标签

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

HTML5

  • 语义化标签

类似于 p,span,img 等这样的,看见标签就知道里面应该保存的是什么内容的是语义化标签。

  • 表单增强
<form action="get">  
    <!--颜色选择-->  
    <input type="color" name="color"> <br>  
    <!--邮箱输入-->  
    <input type="email" name="email"> <br>  
    <!--网址输入,只能输入完整的网址,包含‘http’这样的-->  
    <input type="url" name="url"> <br>  
    <!--电话号输入,只有手机号码-->  
    <input type="tel" name="tel"> <br>  
    <!--滑块 可以设置最大值,最小值,初始值-->  
    <input type="range" name="range" min="100" max="200" value="100"> <br>  
    <!--搜索类型的,多了一个快速清除的按键-->  
    <input type="search" name="search" id=""> <br>  
    <!--日期选择-->  
    <input type="date" name="date"> <br>   
    <!--提交-->  
    <input type="submit">  
</form>

里面的name是用来发给后端的。

  • 增加的表单属性

autofocus属性:
给文本框、选择框、或者按钮控件加上该属性,当打开页面时,该控件自动获得国标焦点,一个页面只能有一个。
required属性:
验证输入不能为空
Multiple:
可以输入一个或多个值,每个值之间用逗号分开
例:<input type=“email”multiple/>
还可以应用于file
pattern : 将属性值设为某个格式的正则表达式,在提交时会检查其内容是否符合给定格式。

  • HTML5 PWA

一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后借助于 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能。

  • HTML5 Audio

HTML5 规定了在网页上嵌入音频元素的标准,即使用 <audio> 元素。

  • HTML5 video

<video> 标签的作用是在 HTML 页面中嵌入视频元素。
<video> 标签定义视频,比如电影片段或其他视频流。

  • HTML5 Web Worker

web worker是在Javascript单线程执行的基础上,开启一个子线程,进行程序处理,而不影响主线程的执行,当子线程执行完毕之后再回到主线程上,在这个过程中并不影响主线程的执行过程。

HTML5提出了web Worker标准,表示JavaScript允许有多个线程,但是子线程完全受主线程的控制,子线程不能操作DOM,只有主线程可以操作DOM,所以以主线程为主的单线程执行原理成了JavaScript这门语言的核心。

  • HTML5 Web Socket

WebSocket 是 HTML5 提供的一种在单个 TCP 连接上进行全双工通讯的协议。(双向通信协议)

拓展分享

Web的风靡

  • 对用户友好

无需安装,无需强大硬件,升级非常方便,容错率强,传播方便

  • 对开发者友好

心智模型成熟,丰富的API能力,框架、工具标准化,开发、调试简单,具备跨平台能力

  • 领域成熟度

浏览器厂商整合,各类web应用风靡,商用平面设计标准化,全面组件化

  • 未来的方向

效率工具,服务端容器化,低(无)代码站点,大前端的统一,三维可视化

总结

这次课程中,老师从基础、协作、HTML、拓展交流四个方面讲解。基础部分主要讲HTML、CSS、JavaScript最基本也是最必须的3个技能。协作部分主要讲如何应用。第三部分先介绍标签,然后详细介绍了HTML5。最后进行拓展。