7.19 下午
Web 技术栈演化
- HTML
- JavaScript
- CSS
纯HTML时代
前端设计 + 后端开发
Dram web (所见即所得) + JSP/php/asp.netMVC时代The Model-View-Controller architecture
为了将html的框架和具体内容进一步解耦
控制器决定客户端和哪一个服务端进行交互
spa时代
前端开发 + 后端开发
spa时代 single page application:只有请求一次HTML,通过JavaScript修改path
浏览器请求服务器拿到一个HTML和相应的资源大前端开发 基于Node的全栈时代
浏览器 + 展示层 <-> Node服务器 + 展示层 <-> 业务服务器
什么是HTML
超文本标记语言 Hyper-Text Markup Language
- 开标签 <标签名>
- 闭标签 </标签名>
- <标签名/> 表示不能有内容体
- 只能有一个html标签,且不能有和他同级的其他标签
<tag>element</tag>
1 | <html> |
html有哪些标签
<head>metadata</head>
为SEO(搜索引擎优化)服务<title></title>
<style></style>
样式<meta/>
<link/>
链接<script></script>
脚本
meta标签
- 在开标签中可以定义属性
<meta charset="UTF-8">
1 | ```<script src="https://code.jquery.com/jquery-3.7.1.slim.min.js"></script>``` JavaScript标签 |
JavaScript语法
声明
- var
- 会出现暂时性死区问题TDZ
- let
- const
- var
变量命名
- 以字母_$为起始符
- 后接字母或数字
变量类型
- 弱类型语言统一用
let
声明 - 在赋值时才确定类型值有类型而变量没有类型
- boolean
- null
- undefined 没有声明变量
console.log(b) Uncaught ReferenceError: b is not defined
- number 不区分整型和浮点数
- bigint
- string
- symbol
- 弱类型语言统一用
对象
1
2
3
4{
a=1;
b=2;
}函数声明
- 参数和返回值都没有数据类型
1
2
3
4function name(parameter){
return;
}
- 特殊的地方 = VS. == VS. ===
- = 赋值
- == 逻辑判断,会进行强制类型转化
- === 还会判断类型
- 将函数赋值给变量 lamda表达式
1
2
3
4
5
6
7
8
9
10
11const fibonacci = n => {
let a=0, b=1, c=0;
for (let i=2; i<= n; i++){
c = a+b;
a = b;
b = c;
}
return c;
}
fibonacci(n);
JavaScript Operate HTML DOM
window.document
获取当前窗口的HTML文件