let、const与var
-
禁止重复声明
-
控制修改
const
-
支持块级作用域
let
-
let优势
- 数组按位置解析
- let [a,b,c] = [1,2,3];
- json按名字对应解析
- let {a,b,c} = {a:12,b:13,c:14};
- 数组按位置解析
详细部分可以看之前的博客.
箭头函数
定义:function(参数){}
这样的匿名函数可以写成(参数)=>{}
-
如果没有参数,甚至可以这样写
_=>{}
-
如果只有一个参数,那么可以写成这样
参数=>{}
-
如果只有一条
return
那么可以写成这样()=> true
; -
如果你在箭头函数里面像这样的代码
return {a:1}
不能这样写()=>{a:1}
这样容易误会,建议的写法:()=>({a:1})
箭头函数的this
指针不会改变,永远绑定在当前环境下
注意,在以下地方请不要使用箭头函数:定义对象方法、定义原型方法、定义构造函数、定义事件回调函数。
剩余参数
定义:...arr
就是后面所有的参数都存到arr数组中
let f = (a,b,...arr)=>{
console.log(arr);
};
f(1,2,3,4,5);
//输出[3, 4, 5]
另一个用法:展开数组
假设有一个数组arr = [1,2,3]
,...arr
相当于1,2,3
数组操作
- map 映射
- arr.map((item,index)=>{return item>0})
- 1:1返回一个映射出来的数组,比如返回一个true和false的数组
- forEach 遍历
- arr.forEach((item,index)=>{console.log(item)})
- 对一个数组进行遍历
- filter 过滤
- arr.filter((item,index)=>{return item%2 == 0;})
- 返回一个偶数数组(当返回值为true的项留下),可以连着写
arr.filter().filter()
- reduce 累计
- arr.reduce((tmp, item, index)=> {
console.log(第${index}次结果:tmp=${tmp},item=${item}.
);
return tmp + item;
}) - n:1返回一个值,第一次计算的时候tmp是
arr[0]
,item是arr[1]
- arr.reduce((tmp, item, index)=> {
字符串模板
定义:`字符串${ value }`
在字符串中可以写表达式或者函数,这里跟php的字符串很像。
例:
let x = 1;
let y = 2;
let obj = {a:3};
let f = _=>'a';
console.log(`${x}+${y}+${obj.a}+${f()}`);
//输出1+2+3+a
未完待续…