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。