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
|
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
|