1、支持了let和const,为了防止var声明变量带来的变量提升
(1)、存在块级作用域不存在变量提升(考虑暂时性死区)
(2)、不允许重复声明(包括普通变量和函数参数)变量提升
2、模块化:可以将需要导出的变量或者函数前面加入export代表导出,通过import导入对应的变量或者方法
3、支持解构:可以从数组或对象中取值
//从数组中取值
const arr = [1,3,5,7]
let [a,b] =arr
//取出指定数组中的值
const arr =[1,3,5,7]
let [a,,,d] =arr
//这样可以获取第一和最后一个对象的值,中间的可以用空格代替,一次类推
//从对象中取值
const obj ={
a:1,
b:2,
c:3,
d:4}let {a:k, b:l, c, d}=obj
//这样前两个对象可以修改默认变量名称,后两个对象正常取值
交换两个变量的值:
let a =1;
ler b =3;
[a,b] = [b,a]
//这样就实现了值的交换
4、支持扩展运算符
(1)、拷贝数组
let arr=[1,2,3];
let arr1=[...arr];
(2)、合并数组
let arr1 =[0,1,2];
let arr2 =[3,4,5];
let arr3 =[...arr1, ...arr2];
let arr4 =[8,7, ...arr2, 9];
5、将数组扩展为函数参数
function assions(x,y,z){retun x+y+z
}
const numbers=[1,2,3];assions(...numvers)
6、克隆对象、合并对象
let obj1={name:'zhangsan', age:'18'};
let obj2={city:'guizhou'};
//克隆
let obj3={...obj1};//合并
let obj4={...obj1, ...obj2}
7、排除一些对象属性
let params={name:'张三',age:'18',type:'1'}
//比如我们要排除type属性那么:let{type, ...other}=params
8、直接在参数上赋值
function assions (age=18, type=1){//.............
}
9、支持对象属性简写
//一般情况下
const name = '张三', age='18', city='guizhou';
const userInfo ={
name:name,
age:age,
city:city
};
//当对象属性值和值的变量名称一样的时候
const name = '张三', age='18', city='guizhou';
const userInfo ={
name,
age,
city
};
//也可以达到一样的效果。
10、支持async、await异步调用方式
async function assions(params){
let res = await getList(params){
if(res.code === 1){//....这样可以做到异步方法有同步函数的效果需要等待函数assinos方法使用成功后才能执行后面的方法}}}
11、支持includes方法
let arr=['si','wu','liu'];
//判断数组中是否包含wu的时候就可以使用includes方法
if(arr.includes('wu')){
}
//如果返回true就表示包含
12、支持指数操作符
2**10=1024
13、支持操作对象的方法object.keys、object.values、object.entries
object.keys:
const obj ={a:1, b:2, c:3};
const keys = object.keys(obj); //[a,b,c]
//获得的是对象key的集合object.values//获得的是对象值的集合
const obj ={a:1, b:2, c:3};
const values = object.values(obj);//[1,2,3]object.entries//获得的是对象的键值对集合
const obj ={a:1, b:2, c:3};
const values = object.entries(obj);//[ [a,1],[b,2],[c,3]]
14、模板字符串
const name ='张三';
const age = 18;
const myInfo = ` my name is ${name}, my age is ${age}.`//同时支持变量运算
const result = `${name} ${age >= 18? '成年!': '未成年!'}`;
15、null判断运算符
const ossings = response.data ?? '404'
//左侧的值不为null或者undefined时,就会返回左侧的值,否则会返回右侧的值。