一、let 和 const
let和const声明的变量不可以重复声明。同时拥有作用域,出了括号就不能再使用。
二、箭头函数=>
这个东西其他语言已经玩烂大街了,没什么好说的。
三、函数的参数扩展
- 参数默认值——定义参数时可以直接赋值
- 展开运输符...
- 可以用做剩余参数的收集,和可变参数一样,且必须为最后一个位置
- 可以用作数组的展开
四、字符串相关
- 新添两个方法 startsWith与endsWith
判断定符以什么开头和结尾,没什么新鲜的C#早有了
- 模板字符串··(反单引号)
用来拼接字符串,可以无视换行${变量}
五、结构赋值
- 左右结构必须一致
- 右边必须是个合法的东西
- 声明和赋值必须同时完成,不能分开写
let[a,b,c]=[1,2,3]//单纯数组
let{a,b,c}={a:1,b:2,c:3}//单纯json
let[{json1,json2},[arr1,arr2,arr3],num,str]=[{a:1,b;2},[1,2,3],4,"str"]//复杂组合
let[{json},[arr],num,str]=[{a:1,b;2},[1,2,3],4,"str"]//复杂组合可按粒度选择接受
六、数组相关
- map(映射)遍历每一个数在方法体里做操作,然后一起返回
let arr=[1,2,3]
let res=arr.map(item=>item+1)
结果:[2,3,4]
- reduce(汇总)遍历每一个数在方法体里做操作,然后只返回一个数
let arr=[5,345,13,57,77]
//reduce有3个参数:temp(临时结果)item(当前元素),index(当前下标,不是从0开始而是从1开始算),
let res=arr.reduce(function(temp,item,index){
return temp+item;//返回的值会当作下一次的temp再传进来
})
- filter(过滤器)遍历每一个数在方法体里做操作,然后过滤掉不满足条件的数,返回满足条件的数
- forEach (迭代)遍历每一个数在方法体里做操作