1、let、const
let:声明块级作用域的变量。
const:声明常量。
<script> for (let i = 0; i < 5; i++) { console.log(i); } console.log("循环外:" + i); // 报错 const i = 100; i = 101; // 报错 </script>
2、字符串扩展
- includes():是否找到了参数字符串。
- startWith():参数字符串是否在原字符串的头部。
- endsWith():参数字符串是否在原字符串的尾部。
3、解构表达式
4、函数优化
函数参数默认值
<script> function fun1(a, b = 2) { console.log(a / b); } fun1(10); fun1(10, 5); </script>
箭头函数
<script> let fun2 = i => console.log(i); fun2(100); let fun3 = (i, j) => { const z = i + j; console.log(z); } fun3(100, 200); </script>
对象的函数属性简写
<script> const person = { name: "zhangsan", eat1: function (food) { console.log(this.name + "吃" + food); }, eat2: food => { console.log(person.name + "吃" + food); // console.log(this.name + "吃" + food); //吃面条 }, eat3(food) { console.log(this.name + "吃" + food); } }; person.eat1("鸡蛋"); //zhangsan吃鸡蛋 person.eat2("面条"); //zhangsan吃面条 person.eat3("香蕉"); //zhangsan吃香蕉 </script>
解构表达式结合函数
<script> const p = { name: "lisi", age: 30 }; const fun = pp => console.log(pp.name); fun(p); const fun2 = ({name, age}) => console.log(name + " " + age); fun2(p); </script>
5、map、reduce
map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。
<script> let arr = [10, 20, 30]; const arr2 = arr.map(a => a * 10); console.log(arr2); //Array(3) [ 100, 200, 300 ] </script>
reduce():接收一个函数(必须)和一个初始值(可选)
第一个参数接收两个参数:
- 第一个是上一次reduce处理的结果。
- 第二个是数组中要处理的下一个元素。
<script> let arr = [10, 20, 30]; const sum = arr.reduce((a, b) => a + b); console.log(sum); // 60 const sum2 = arr.reduce((a, b) => a + b, 100); console.log(sum2); // 160 </script>
6、Object扩展
- keys(obj):获取对象的所有key形成的数组。
- values(obj):获取对象的所有value形成的数组。
- entries(obj):获取对象的所有key和value形成的二维数组。格式:[[k1, v1], [k2, v2], ……]。
- assign(dest, ...src):将多个src对象的值拷贝到dest中(浅拷贝)。
7、数组扩展
- find(callback):找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员一次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有复合条件的成员,则返回undefined。
- findIndex(callback):与find()方法类似,返回第一个复合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
- includes(数组元素):与find类似,如果匹配到元素,则返回true。