0%

ES6的新增语法

let

变量声明不会提前
块级作用域
let 不允许相同作用域内多次声明同一变量

const

声明常量,声明后不能再修改值
变量声明不会提前
块级作用域
const 不允许相同作用域内多次声明同一变量
声明后无法修改值 3. let、const、var 的区别

  • 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。
  • 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
  • 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值。
解构与赋值
1
2
3
//const { name, age } = res.data.data
//const { data: {name, age } } = res.data
const { data: { data: { name, age} } } = res
  • 数组解构
1
2
3
4
let [a, b, c] = [1, 2, 3]
console.log(a) // 1
console.log(b) //2
console.log(c) //3
  • 对象解构
1
2
3
4
5
6
7
8
9
let obj = {
name: 'test',
adr: 'testAddress'
}
let {
name,
adr
} = obj; //取的变量名要和属性名一致,否则解构失败
console.log(name, adr );//test testAddress
  • ES6 解构并重命名:属性名:新名字
1
2
3
4
5
let {
name: username,
adr
} = obj;
console.log(username, adr);//test testAddress
箭头函数

形参只有一个的时候,可以省略圆括号
如果只有一个语句,并且 return 的时候,就可以省略花括号
箭头函数都可以省略 function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//普通函数:只有一个形参
function show1(a) {
return a + 1;
}
//箭头函数:只有一个形参
let show2 = a => a + 1;
console.log(show1(1),show2(1));//2 2

//普通函数:没有形参
function show3() {
return 666;
}
//箭头函数:没有形参
let show4 = () => 666;
console.log(show3(), show4());//666 666

//普通函数:多个形参
function show5(a, b) {
return a + b;
}
//箭头函数:多个形参
let show6 = (a, b) => a + b;
console.log(show5(3,3),show6(333,333));//6 666

//箭头函数里面没有this:指向外层的this
btn.onclick = () => {
console.log(this);//window
}

var obj = {
age: 20,
say: () => {
console.log(this.age)
}
}
obj.say() //undefined,因为指向的是window
模板字符串
1
2
3
4
5
6
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);
// "Fifteen is 15 and
// not 20."
扩展运算符(…)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let arr1 = [1, 2];
let arr2 = [3, 4];
let newarr = [...arr1, ...arr2];
console.log(newarr) //[1, 2, 3, 4]
function add(...vals){
let sum=0;
for(let i=0;i<vals.length;i++){
sum+=vals[i];
}
return sum;
}

let arr = [1,2,3,4,5,6];
let sum = add(...arr);
console.log(sum); //21