前端三要素
- HTML(结构):超文本标记语言,决定网页的结构和内容
- CSS(表现):层叠样式表,设定网页的表现形式
- JavaScript(行为): 一种弱类型脚本语言,其源代码不需要经过编译,而是由浏览器解释运行用于控制网页的行为
结构层(HTML)
HTML的英文全称是 Hyper Text Markup Language,即超文本标记语言。HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX, Windows等)。使用HTML,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即我们所见到的网页。
本质:html是什么文件?
html文件即超文本标记语言文件文档,是扩展名、后缀名为html的文件。超文本标记语言的结构包括头部分(Head)、和主体部分(Body),其中头部(head)提供关于网页的信息,主体(body)部分提供网页的具体内容。它其实是文本,它需要浏览器的解释,每种HTML标记符在使用中可带有不同的属性项,用于描述该标记符说明的内容显示不同的效果。
HTML文件是可以被多种网页浏览器读取,传递各类资讯的文件。从本质上来说,Internet(互联网)是一个由一系列传输协议和各类文档所组成的集合,html文件只是其中的一种。这些HTML文件存储在分布于世界各地的服务器硬盘上,通过传输协议用户可以远程获取这些文件所传达的资讯和信息。
HTML文件是被网络浏览器读取,产生网页的文件。
从本质上来说,环球网只是一个由HTML文件及一系列传输协议所组成的集合。这些HTML文件存储在分布于世界各地的计算机的硬盘上,而传输协议能把这些文件从一台计算机传输到另一台计算机。
网络浏览器,例如Netscape Navigator或Microsoft Internet explorer,能够解释HTML文件来显示网页,这是网络浏览器的主要作用。当你使用浏览器在环球网上浏览网页时,浏览器软件就自动完成HTML文件到网页的转换。
<!doctype html>
<html>
<head>
<!--声明-->
<!-- 移动端界面-->
<meta charset="utf-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
<meta>
<link>
<script>
<style type="text/css">
</head>
<body>
<header>
<section>
<footer>
</body>
<script>
</html>
iframe内嵌框架
<iframe name="hello" width="" height="" frameborder="0">asd</iframe>
a+iframe 用iframe打开超链接
target
<iframe name="hello" width="" height="" frameborder="0">asd</iframe>
<a href="001.png" target="hello">asd</a>
表现层(CSS)
CSS层叠样式表是一门标记语言,而不是编程语言,因此不可以定义自变量。不可以引用等,换句话说就是不具备任何语法支持,缺点如下:
- 语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器
- 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护
这就导致我们在工作中无端增加了许多工作量,为了解决这个问题,前端开发人员会使用一【CSS预处理器】的工具,提供CSS缺失的样式层复用机制,减少冗余代码,提高样式代码的可维护性,大大提高了前端在样式上的开发效率
CSS预处理器
CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言为CSS增加编程的特性,简单说:用一种专门的编程语言,进行Web页面样式设计,再通过编译器转化为正常的CSS文件,以供项目使用
常见的CSS预处理器
- SASS:基于Ruby,通过服务端处理,功能强大,解析效率高,需要学习Ruby语言,上手难度高于LESS
- LESS:基于NodeJS,通过客户端处理,使用简单,功能不SASS简单,解析效率也低于SASS,但是在实际开发中足够
导入三种方式
行内样式
<h1 style=""></h1>
内部样式
<style>
</style>
外部样式
<link rel="stylesheet" href="alertcss.css" />
优先级:就近原则
样式选择器
<style>
h1{
color: red;
}
</style>
<h1>测试</h1>
<style>
.myH1{
color: red;
}
</style>
<h1 class="myH1">测试</h1>
<style>
#myid{
color: #1EB8FA;
}
</style>
<h1 id="myid">测试</h1>
选择器优先级:id>class>标签
定位
- 相对定位:其参照物为本身初始化时的位置
- 绝对定位:1、无父级元素则参照物为浏览器;2、有父级元素则参照物为父级元素
行为层(JavaScript)
JavaScript:一门弱类型脚本语言,其源代码在发往客户端运行之前不需要经过编译,而是将文本格式的字符发给浏览器由浏览器解释运行。
TypeScript: 一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
JavaScript框架
- jQuery: JavaScript框架,优点是简化了DOM操作,缺点是DOM操作太频繁,影响前端性能
- Angular: Google收购的前端框架,由一群Java程序猿开发,其特点是将厚爱到的MVC模式搬到了前端的并增加了模块化开发的概念。
- React:Facebook出品,一款高性能的JS前端框架;特点是提出了新概念【虚拟DOM】用于减少真实DOM操作,在内存中模拟DOM操作,有效的提升了前端的渲染效率;缺点是使用复杂,以为需要额外学习一门【JSX】语言
- Vue: 一款渐进式JavaScript框架,所谓渐进式就是逐步实现新特性的意思,如实现模块开发、路由、状态管理等新特性,其特点是综合了Angular(模块化)和React(虚拟DOM)的优点
- Axios:前端通信框架;因为Vue的边界很明确,就是为了出处理DOM,所以并不具备通信能力,此时就需要额外使用一个通信框架与服务器交互;当然也可以直接使用jQuery提供的AJAX通信功能
数据类型:对象
创建
- 先创建对象在添加属性
var person={};
person.name='xxx'
- 创建对象的同时添加属性
var person={
name:"ljj"
};
获取属性
person.name
person['name']
删除属性 delete 对象.属性
delete person.name
判断属性是否属于对象 属性 in 对象
‘name’ in person
判断对象是否有此属性 对象 hasOwnProperty 属性
person.hasOwnProperty('name')
遍历获取属性
for (var i in person) {
console.log(i)
}
数据类型:数组
遍历-forEach(函数)
var arr=['a','b','c','d']
arr.forEach(function(value){
console.log(value)
})
遍历 for in | for of
in:下标
of:元素
UI框架
- Ant-Design:阿里巴巴出品,基于React的UI框架
- ElementUI、iview、ice: 饿了么出品,基于Vue的UI
- Bootstrap: Twitter推出的一个用于前端开发的开源工具包
- AmazeUI: 又叫“妹子UI”,一款HTML5跨屏前端框架
JavaScript构建工具
- Babel: JS编译工具,主要用于浏览器不支持的ES新特性,比如用于编译TypeScript
- WebPack:模块打包器,主要作用是打包、压缩、合并及按序加载
后端技术
前端人员为了方便开发也需要掌握一定的后端技术,但我们Java后台人员知道后台知识体系极其庞大复杂,所以为了方便前端人员开发后台应用,就出现了NodeJS这样的技术
NodeJS的作者已声称放弃了NodeJS(笨重),开始开发全新架构的Deno