学习笔记(13)ES6新特性
目录
- 1,let和const
- 2,字符串模板
- 3,解构赋值
- 3.1,对象解构赋值
- 3.2,数组解构赋值
- 3.3,函数参数解构赋值
- 4,Symbol
- 5, 箭头函数
- 6,for of
- 7,class类
- 8,导入导出
- 9,Promise
- 10,async/await
1,let和const
let声明的变量是块级作用域,作用域仅在当前的代码块中。
if (5>3) {
let a =10;
}
// console.log(a);// a is not defined
const:常量声明,声明之后只能被赋值一次。
2,字符串模板
使用反撇号(``)
声明字符串插值模板,在字符串插值模板中可以使用${}
插入一个变量的值,可以直接输入回车和双引号等特殊字符。
let name='king';
let age =21;
let str1 =`我叫${name},今年${age}岁`;
console.log(str1); //=我叫king,今年21岁
3,解构赋值
3.1,对象解构赋值
对象的解构赋值,可以将对象中的属性赋值给若干个变量。
let obj = {
date: '2021',
address: '郑州',
people: 'king'
}
/* 解构赋值 */
let {people,time,address} =obj;
console.log(people);//king
3.2,数组解构赋值
let arr =['苹果','香蕉','橘子'];
/* 解构赋值 */
let [a,b,o] =arr;
console.log(a) //苹果
3.3,函数参数解构赋值
函数参数进行结构赋值,当函数的参数是一个对象时,可以直接在形参列表中进行解构,并且可以设置某个参数的默认值。
function f1({ a, b, c = 10, d }) {
console.log(a);
console.log(b);
console.log(c);
console.log(d);
};
f1({ a: 1, b: 5, d: 4 }) //1,5,10,4
4,Symbol
表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
5, 箭头函数
不需要function
关键字来创建函数,省略 return 关键字,this始终指向函数申明时所在作用域下的this值。
//es5
var fun = function() {
}
//es6,箭头函数
var fn = () => {
}
6,for of
for of遍历的是键值对中的值
for in遍历的是键值对中的键
7,class类
ES6 中支持 class 语法,不过,ES6的class不是新的对象继承模型,它只是原型链的语法糖表现形式。
class Car{
constructor() {
console.log("this is a car");
}
color() {
console.log('black');
}
state() {
console.log("It's moving now");
}
}
console.log(typeof Car); // function
let HQ = new Car();
HQ.color(); // "black"
HQ.state(); // "It's moving now"
8,导入导出
导入improt
导出export default
9,Promise
点击前往Promise笔记页面
10,async/await
比promise更好的解决了回调地狱。
async function() {
awiat fn()
}