ES6

一、变量声明关键字

  var:

    1.全局作用域和函数作用域

    2.变量提升

  let:

    1.局部作用域

    2.不会变量提升

    3.不能重复声明

  const:

    1.值类型不能修改

    2.声明必须赋值

    3.一般大写

二、解构

  数组:

    定义:把数组或对象解析为单独变量

    基本格式:var [a,b,,c="default",...rest] = arr

    逗号代表下一位

    ...rest代表剩余的所有(只能放在最后)

    可以有默认值

    交换变量:[a,b] = [b,a]

  对象:

    var {name,age,say="see",...rest} = obj

    对象解构没有顺序

三、展开

  ...arr:

    arr为展开的单独变量

四、字符串

  

  

字符串模板

`${js变量}` 可以换行,可以加特殊符号

遍历

for of

检测

1.includes(sub)是否开头

2.startWith(sub)以...开头

3.endsWith(sub)以...结尾

去空白

1.trim( ) 去掉两端空白

2.trimLeft( ) 去掉左边空白

3.trimRight( ) 去掉右边空白

重复

repeat(n) 字符串重复n次

填充

"22".padStart(4,"0")---"0022"

.padEnd(次数,填充字符串)---后面填充

  

五、数组高阶方法

foreach( ) 遍历

arr.forEach(function(item,index,self){...})

item 当前遍历的元素

index 当前元素的下标

self 当前数组

map( ) 映射

arr.map(function(item,index,self){
    //返回一个,映射数组
})

filter( ) 过滤

arr.filter(function(item,index,self){
    // 返回的值为真保留元素
    // 返回的值为假过滤掉元素
})

reduce( ) 累计

arr.reduce(function(a,b){
    a是上一次返回的结果
    b是遍历项
})

some( ) 有一个

有一个返回结果为true最终结果为true

every( ) 每一个

每个返回结果为true最终结果为true

find( ) 查找元素

查找符合条件的元素

findIndex( ) 查找下标

查找符合条件的元素下标

 

 

六、箭头函数

  1. 箭头函数省略function

  2. =>左边参数

  3. 箭头右边 函数体、返回值

  4. 传参0个或者2个以上参数都要加上括号

  5. 如果函数体由多行需要加上大括号

  6. 如果返回的是一个对象则用()包裹对象

  7. 箭头函数中的this指向的是上一层作用域的this

七、函数

  1.默认参数

    function fn(a=10,b=20){...}

  2.调用:扩展参

    fn(...arr)

  3.定义:不定参

    function(...args){...}

八、对象

  对象简写:

    1.变量和值简写

    2.函数function简写

    3.var name = "beibei";
     var obj = {
          name,say(){alert(this.name)}
     }

  动态属性:

    {[nick+"msg"]:"你好"}

九、类

  1、面向对象基本特点

    封装、继承、多态、接口

  2、单词

extends 继承

constructor 构造函数

super 超类

static 静态

3、定义类

class person{
    constructor(namae,age){
        this.name = name;|
        this.age = age;    
    }
    say(){
            alert("你好")
    }
}

4、实例化类

var p1 = new Person( )

5、类中的this

Person类中的this指向当前类的实例(p1)

6、继承

class Teach extends Person{
    constructor(name,age,major){
        super( );
        this.major = major;
    }
}

十、模块module

导入

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

import Square from './api.js'

import Sq from './api.js'

别名as  *代表所有

import*api from './api.js'

api.name;api.fun( )

别名

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

导出

export{name,fun,Square}

export default Square;

 

十一、Set

定义:

  没有重复元素的集合(数组)

初始化:

    var s1 = new Set()
    var s2 = new Set([1,2,5])

添加:s1.add( )
删除:s1.delete( )
清空:s1.clear( )
检测:s1.has( )
长度:s1.size

 

 


转数组:

 

    Array.from(s1)
    [...s1]

数组去重:

    arr1 = [...new Set(arr)]