1、动态样式语言
在CSS的基础之上,添加了新特性,目的:为了简化CSS开发
-
常见的动态样式语言:
- Sass/Scss
- Less
- stylus和css语法的差别较大
-
编译:浏览器只认识css,不认识其他的动态样式语言,动态样式语言-(编译)->自动成为一个css,在html页面上引入的其实是编译后的css
- vscode:安装一个插件:easy sass,编译你写的scss,只要一保存就会自动生成css(自动化)
-
学习Scss新特性:
- 变量:只要重复用到的数据,都要创建为一个变量
创建:$变量名:值; <>特殊- 使用时,$不能省略
- 不区分中划线和下划线
- 依然具有js中的作用域,全局变量和局部建立,如果你放在某个选择器内部创建的为局部,放在外面则为全局
- 嵌套:选择器可以嵌套
- 语法:
.d1{
...
.d2{
}
}
- 语法:
.d1{
- 变量:只要重复用到的数据,都要创建为一个变量
编译后:.d1{...},.d1.d2{...} 可以在前面添加&,类是于JS中的this,被哪个{}包裹,就算哪个选择器
-
导入 可以将多个Scss整合为一个css,@import"路径"
-
注释:只能书写多行注释,不能书写单行注释,因为CSS不能识别
-
混合器:类似于JS中的函数
- 创建混合器
@mixin混合器名(形参:默认值,...){<br> css属性名:形参;
...
} - 调用混合器
- @include 混合器名(实参); 传入的顺序要一一对应
- @include 混合器名($形参:实参);-传入的顺序可以随意
- 特殊
- 使用时,关键字别掉了
- 不要着急去封装,碰到重复的代码,再提取出来封装为一个函数
- 创建混合器
-
运算符:主要用于颜色值的运算,支持+-/,尤其是,越往0靠近数字就越少,颜色就会越暗,越往f靠近数字就越大,颜色就越亮
-
分支和循环:不重要,直接写JS
less
- 变量的创建:@变量名:值;要区别中划线和下划线
- 混合器更加的简单
- 创建:
.whb(@w:0px,@h:0px,@b:transparent){
width: @w;
height: @h;
background: @b;
} - 调用:
.div1{
.whb()
}
- 创建:
webSocket:HTML5提供的一个新特性,代码并不复杂,重点在于理解
HTML5一共有10大新特性:
- 语义化标签:header nav footer section...
- 增强型的表单:
- 视频和音频:
- *Canvas绘图:用于画折线图、柱状图、雷达图、饼状图、甜甜圈图...数据可视化,甚至学完后你会发现也有框架帮我们做好了
- SVG绘图 - 用于画矢量图的,画小图标的,由阿里图标代替了
- 拖拉API - 有了jQueryUI拖拽轻而易举
- WebWorker - 微任务
- *WebStorage - 客户端存储技术:LocalStorage和sessionStorage
- *WebSocket - 机器人、实施走势图、在线聊天室
- *地理定位 - 在中国由百度地图和高德地图帮助我们程序员搞定了地理定位
websocket协议,简称为ws协议,属于广播-收听协议,客户端连接到服务器就不会再断开连接,是永久连接,双方可以随意向对方发送消息,且是不对等发送,ws协议专门用于完成实时操作的 如何使用:
- 下载引入node.js的第三方模板包:引入:
var ws=require("ws") - 分为三方面
- 依旧使用express搭建http服务器和文件系统
- 搭建ws服务器
//引入
var ws=require("ws");
//创建ws服务器
var server=new ws.Server({port:8008});
//为ws服务器绑定连接事件
server.on("connection",socket=>{
console.log("有个崽儿连接上我ws服务器了");
//说话
socket.send("消息");
//听话
socket.on("message",data=>{
data->前端发来的东西
})
})
- 搭建ws客户端
//和ws服务器端进行连接
var socket=new WebSocket("ws://127.0.0.1:8008");
//听话:
socket.onmessage=e=>{
e.data->后端发来的东西
}
//说话:
socket.send("消息");
ES的补充
ES7
- Array API:includes 可以直接通过arr.includes();来判断数组中是否含有某个元素,可以直接得到一个布尔值
- 指数运算符:如果要计算数字的乘方:底数**幂
ES8
- Object.values
作用:可以将一个对象转为一个数组 - Object.entries
作用:将对象、数字、字符串变为二维数组 - StringAPI-Padding
padStart和padEnd分别代表填充前面和后面 - 尾部逗号的添加
- async和await
- async作为关键字放到函数function的前面,用于表示该函数为一个异步函数
- await就算等待的意思,其实他后面可以放任何表达式,但更多的时候放的是一个返回的Promise对象的表达式
ES9
- 扩展运算符:...
不光数组可以使用,对象也可以使用了,而且他不光可以脱衣服,还可以某些情况穿衣服
ES10
- flat:数组的API,会按照一个可以指定的深度遍历递归你的数组,把他铺平
- flatMap:数组的API,就算flat和Map二者合一,先执行map后执行flat,但是flat只能铺一层
- trimStart/trimEnd - 去掉字符串的空白
ES11
- 全局对象全新写法: globalThis,不管是服务器端又或者是浏览器端都可以使用
- for in循环标准化
ES12
逻辑赋值运算符,一句话完成两个操作,先逻辑再赋值
- &&=
- ||=
ES13
字符串、数组共用的一个API:at(i);也是放下标,但是支付负数参数,-1代表倒数第一个