es6 体系:
1.var的升级使用 let const
2.解析结构:
//var的升级使用
if(true){
//这里我们使用let 在控制台上就会报错
var a = 1;
}
console.log(a);//它此时不应该被打印出来
//解析赋值
//说白了就是左右两边的东西要相等,即左边是数组,那么右边也是数组
//左边是对象,右边也是对象
let arr=[1,2,3]
let[a,b,x] = arr;
console.log(a,b,x);
let {name: name1,age: age1} = {name : 'guo',age:'26'};
console.log(name1,age1);
//
let [{age3},{hobby: hy}] =[{
name3: 'guo',
age3 :23
},
{
hobby:['runing', 'love']
}]
console.log(age3,hy);
3.字符串的变化
/*
1. 反单引号
2.语法使用 ${}
*/
let name = 'guo';
let age = 26;
let res = `My name is ${name},l am ${age} years old`;
console.log(res);
//模板标签
function tag(params) {
console.log(params);
console.log(arguments);
let res = '';
let arr = [];
let arr2 = arguments[0];
for(let k in arguments){
if(k != 0){
arr.push(arguments[k]);
}
}
for(let key in arr){
res+= arr2[key].toUpperCase()+arr[key].toString().toUpperCase();
}
console.log(res);
}
let res2 = tag`My name is ${name},l am ${age} years old`;
4.数组相关
//Array.from 就是将数组或者是类数组转化为数组
let fun = function () {
let arr = Array.from(arguments);
console.log(arr);
}
//Array.of()
console.log( new Array(3).length);
console.log(Array.of(3).length);
let arr = [1,2,4,6,7,8];
arr.fill('a',2,3);
console.log(arr);
5.箭头函数
//提供了默认的参数
let fun = function (a = 0, b =1) {
return a+b;
}
console.log(fun(9));
//剩余运算符
let funA = function (num1,...num2) {
console.log(num1 instanceof Array);
console.log(num1,num2);
}
funA(1,23,4,5,6);
//箭头函数
// let fun = function (a = 0, b =1) {
// return a+b;
// }
//如果函数的参数多余一个测所有的参数用小括号抱起来
//箭头函数如果只有一条语句 可以省略大括号
//this的指向问题,这里不多说,
let c = (a = 0, b =1) => a+b;
// console.log(c(1,3));
[2,3,4].forEach((item,index,arr) => {
console.log(item);
});
//展开符
//...是展开符,将里面的元素展开
function fun(...params){
console.log(params)
}
fun(1,2,3);