ES6知识点总结

1.变量声明关键字

1.var 全局变量,会变量提升

2.let 局部变量,跟var类似,区别在于只能局部发挥作用,即在一对{}内发挥作用,并且不会变量提升,不能重复声明

3.const 声明的变量类型一般为常量,并且必须赋值,变量名必须得大写

2.结构

1.数组

1.通俗的来说,可以简单地理解为把数组或对象解析为单独的变量

2.基本格式:

var [a,b,,c='defalut',...res]=arr

解析:逗号表示下一位,...res表示数组里剩余的所有元素,并且只能放在数组的末尾位置,c='default'表示默认值

3.交换变量

[a,b]=[b,a]

2.结构

基本格式:

var {name,age,say='你好',...res}

注意:对象里的属性名没有顺序之分

3.字符串

3.1.字符串模板

基本格式:`${js变量}`,里面可以实现换行,添加特殊符号等操作

      var obj = { name: "张三", age: 18 };
      var str4 = "大家好,他是" + obj.name + "今年" + obj.age + "岁";
      console.log(str4);
      var str5=`大家好,他是${obj.name},今年${obj.age}`
      console.log(str5);

 

3.2.遍历 for of

      var str = "党在我心,强国有我";
      // 01 for of 遍历str
      for (let s of str) {
        console.log(s);
      }

3.3.检测 检测主要有三种方法:返回true/false

3.3.1.include(sub)检测是否包含

 var str = "党在我心,强国有我";
      // 02 includes包含  
      console.log(str.includes("我的")); //false
      console.log(str.includes("我")); //true

 

3.3.2.startWith(sub)检测以...开头

 

 var str = "党在我心,强国有我";
      // 02 startsWith以...开头 

      console.log(str.startsWith("wo")); //false
      console.log(str.startsWith("党")); //true

 

3.3.3.endtWith(sub)检测以...结尾

 var str = "党在我心,强国有我";
      // 02  endsWith以...结尾
      console.log(str.endsWith("wo")); //false
      console.log(str.endsWith("我")); //true

 3.4去空白

3.4.1trim()去掉两端空白

      // 03 es5去掉空白 trim去掉两端空白 
      var str1 = "  党在我心,强国有我  ";
      console.log(str1);
      console.log(str1.trim());
      

 

3.4.2trimLeft()去掉左边空白、trimRight()去掉右边空白

    // 03  trimLeft去掉左边空白 trimRight去掉右边空白
      var str1 = "  党在我心,强国有我  ";
      console.log(str1);
      console.log(str1.trimLeft());
      console.log(str1.trimRight());

 

3.5字符串重复

      // 05 repeat重复
      var str2 = "你好啊\n";
      console.log(str2.repeat(6));

 

3.6填充 .padEnd(次数,内容)

 

      // 06 padStart开头填充 padEnd结尾填充
      var str3 = "8987";
      console.log(str3.padStart(8, "0"));
      console.log(str3.padEnd(8, "0"));
      console.log("LOVE".padEnd(10, "-"));

 4.数组高阶方法

4.1forEach()遍历

      // 01 forEach遍历
      var arr = [1, 3, 5, 9];
      //   item 遍历的元素,index元素的下标,self当前的数组
      arr.forEach(function (item, index, self) {
        console.log(index, item, self);
      });

4.2map()映射

//   02 map映射,从现有数组映射出新的数组
      var arr = [1, 3, 5, 9];
      var arr2 = arr.map(function (item, index, self) {
        return item * 100 + "¥";
      });
      console.log(arr);
      console.log(arr2);

     

4.3filter()过滤



      //   03 filter 过滤
      var arr = [1, 3, 5, 9];
      var arr3 = [20, 1, 5, 36, 45];
      var arr4 = arr3.filter(function (val) {
        // 当返回的值为真,当前元素保留
        // 当返回的值为假,当前元素被过滤
        return val > 5;
      });
      console.log(arr4);

4.4reduce()累计


      //   04 reduce 累计
      var arr = [1, 3, 5, 9];
      var all = arr.reduce(function (res, val, index, self) {
        return res * 10 + val;
        // return res+val
      });
      console.log(all);
      // 1 1+3  1*10+3
      // 2 4+5  13*10+5
      // 3 9+9  135*10+9

     

4.5some()有一个



      // 05 some 检测只要有一个符合就返回true
      var arr = [1, 3, 5, 9];
      var res = arr.some(function (item) {
        return item > 10;
      });
      console.log(res); //false



     

4.6every()每一个



      //   06 every 检测都是(每个符合都符合最终返回true)
      var arr = [1, 3, 5, 9];
      var result = arr.every(function (item) {
        return item > 5;
      });
      console.log(result); //false

    

4.7find()查找元素

      // 07 查找数据中第一个大于10的数据
      // find查找元素
      var arr = [1, 8, 6, 3, 4, 20, 45, 0, 12];
      var n = arr.find((item) => item > 10);
      console.log("第一位数字:" + n);

4.8findIndex()查找元素下标


      //  08 findIndex查找元素下标
      var arr = [1, 8, 6, 3, 4, 20, 45, 0, 12];
      var ind = arr.findIndex((item) => item > 10);
      console.log("下标:" + ind);

5.箭头函数

      // 01 箭头函数省略function

      // 02 =>左边参数

      // 03 箭头右边 函数体、返回值

      // 04 传参两个或以上 参数加括号

      // 05 如果函数体有多行需要加上花括号 花括号里需要有return

      // 06 如果返回的是一个对象,则用()包裹

      var obj = {
        name: "张三",
        age: 20,
        grow: function () {
          // 谁调用setInterval谁是this
          // 箭头函数的this指向函数的上一层作用域this
          window.setInterval(() => {
            console.log(this);
            this.age++;
            console.log(this.name + "已经" + this.age + "啦!");
          }, 1500);
        },
      };
      obj.grow();

6.函数

 6.函数

     function fn(a = 5, b = 6) {
        alert(a + b);
      }

      //   调用拓展参数
      var ps = ["你好", "朱一龙", "今天天气很好", "要一起出来玩吗?"];
      function meeting(p1, p2, p3, p4) {
        var str = `该怎么说呢?${p1},${p2},${p3},${p4}`;
        console.log(str);
      }
      //  ps数组展开,传入
      meeting(...ps);

      //   定义:不定参
      // 参数不一定...数组来接收
      function add(...arg) {
        var res = arg.reduce((a, b) => a + b);
        console.log(res);
      }
      add(1, 2, 3, 4);

7.对象 :对象简写和对象动态属性

      // 对象简写
      var name = "张三";
      var age = 22;
      var say = function () {
        alert(`大家好,我是${this.name}`);
      };
      var obj = {
        name,
        age,
        say,
        doit() {
          alert(this);
        },
      };
      console.log(obj);

      //   动态属性(对象属性可以通过js拼接)
      var nick = "hello";
      var myobj = {
        name: "张三",
        [nick + "说话"]: "你好",
      };
      console.log(myobj);

 8.类:定义类、实例化类、实例化类中的this

面向对象特点: 01 继承(extends)  02封装(constructor)  03动态() 04接口


      // 人
      //   定义类
      class Prerson {
        //   构造函数
        constructor(name, age) {
          // 类中的this指向的类实例
          this.name = name;
          this.age = age;
        }
        eat() {
          alert("我不喜欢今天的天气");
        }
      }

      // 实例化类
      //   p1 p2称为实例,实例对象
      var p1 = new Prerson("张三", 30);
      var p2 = new Prerson("李四", 22);

      // 老师
      // extends 继承
      class Teach extends Prerson {
        constructor(name, age, major) {
          super(name, age);
          this.major = major;
        }
        teach() {
          console.log(`我要去给学生上课${this.major}课程`);
        }
      }
      // 实例化老师
      var t1 = new Teach("居老师", 26, "生物");
      var t2 = new Teach("温老师", 22, "物理");
      console.log(t1);
      console.log(t2);

 9.模块

9.1 导入:

import{name,fun,Square from './api.js'}

别名as,*代表所有
import*api from './api.js'
api.name;api.fun()

9.2 导出:

export{name,fun,Squaer} 导出多次

export default Squart  默认只能导出一次

10.set:没有重复元素的集合(数组)

      // set数组去重
      var arr = [1, 15, 16, 1, 2, 5, 1, 2, 3, 2, 3];
      var arr2 = [...new Set(arr)];
      console.log(arr2);
      //   实例化set
      var s1 = new Set([1, 8, 9, 8]);
      for (let s of s1) {
        console.log(s);
      }
      s1.add("love");
      s1.delete(8);
      console.log(s1.has("love"));
      console.log("长度:", s1.size, s1);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值