(作者笔记自用)
1.const、let:
ES6 的 let 和 const 实现了块级所用域的变量声明方式,使用 let 和 const 声明变量能有效避免由于变量提升导致的
变量污染的问题。因为用 let 和 const 声明的变量作用域是代码块,这个设计比较符合大多数人的思维方式。并且严格
来说, const 声明了一个指向变量的指针,并不是说 const 声明的变量不可改变, 而是该指针指向的地址不可改变。
2.map、set: set和数组一样,都是一些有序值的的集合,但是set里面是不会出现重复的数据的,并且它的主要作用一是存储数据,二是在于看一个值是不是在集合中(set查找速度更快)。
3.模板字符串:
var data = "luoxijie";
var div = `<div>${data}</div>`;
4.对象数组结构赋值:
// 将response对象中的属性名data的属性值赋值给res
const {data:res} = response;
// a = 1;b = 2;c = 3;
let [a, b, c] = [1, 2, 3];
5.函数剩余参数:
// a: 如果实参的个数少于形参的个数,则多余的形参值为undefined
// b: 如果实参的个数和形参的个数相同,则形参的值就是实参对应的结果
// c: 如果实参的个数多余形参的个数,那么多余的实参可以通过剩余参数获取
// d: 剩余参数最后会以数组的形式将多余的实参保存下来
// e: 剩余参数必须写到参数的末尾
function add(a, b, ..arg){
console.log(arg);
}
add(1, 2, 3, 4, 5);
6.延展运算符:
// 将a,b数组链接并赋值给arr
let arr = [...a,...b]
function add(a, b, c){
...
}
// 函数调用时
let num = [1, 2, 3];
add(...num);
7.函数默认参数:
// 声明函数时
function add(a , b, c = 1){
...
}
add(1, 2);
add(1, 2, undefined);
8.对象字面量的增强:
// 对象之前已经定义了的属性值,以及对象内定义函数
var name = 'luoxijie';
var age = 21;
const person = {
name,
age,
print_msg(){
...
},
};
9.Promise异步对象,我使用async,await比较多一点:
// 解决回调地狱
const p = new Promise((resolve,reject)=>{
if(true){
resolve('success');
}else{
reject('fail');
}
});
p.then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
10.class的支持:
//
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
getName() {
return this.name;
}
getAge() {
return this.age;
}
setName(value) {
this.name = value;
}
setAge(value) {
this.age = value;
}
}
const person = new Person('luoxijie', 21);
console.log(person.getName(), person.getAge());