ES6 知识点总结

1.变量:var、let、const

var : 变量提升、重复声明、window属性 、全局作用域和函数作用域

let : 无变量提升、无重复声明、无window属性、全局作用域和块级作用域{()}、暂时性死区(TDZ,同作用域下先声明,再应用)

const : 设置常量、声明时必须赋值、不可重复声明、不可更改、不能删除、不能重新赋值、块级作用域、没有变量提升

        如果是引用类型,设置的指向Object.freeze(常量)

2.箭头函数

  • 如果只有一个参数,圆括号“()”可以省略
  • 函数体如果只有一句return语句,花括号也可以省略
// 定义一个箭头函数
let a = (arg)=>{ //  这里=>符号就相当于function关键字
    return arg+=1
}
// 也可以简写为
let a = arg => arg+=1

普通函数和箭头函数的对比:

// 普通函数
 var obj = {
   say: function () {
     setTimeout(function() {
       console.log(this)
     });
   }
 }
// 箭头函数
var obj = {
    say: function () {
        setTimeout(() => {
            console.log(this)
        });
    }
}
obj.say(); // obj

//普通函数中的this指向调用函数时所在的对象
//箭头函数this指向函数定义时所在的对象

3.解构赋值

解构赋值必须遵守的的三条规则(要牢牢记住哦!!!!)

  1. 左右结构必须一样
  2. 右边必须是一个合法的数据
  3. 声明和赋值必须一句话完成,声明和赋值不能分开

4.ES6常用方法及语法

key():获取数组中所有元素的键名

value():获取数组中所有元素的数据

entries():获取数组中所有数据的键名和数据(键值对)

Object.isArray(obj):判断对象是否为数组

includes():判断字符串中是否包含某些字符串

startWith():如果在字符串的起始部分监测到指定文本则返回true

endsWith():如果在字符串的结束部分检测到指定文本则返回true

repeat():重复字符串

        注:参数不能传负数和infinity

at():参数传入角标,返回值为角标对应的字符

padStart()/padEnd():不全指定位数

        注:两个参数,第一个为位数。第二个是用什么补全

Array.from():用于将两类对象转为真正的数组

...运算符:扩展运算符,将一个数组转为用逗号分隔的参数序列

        ...应用:

  • 复制数组(克隆数组)
  • 合并数组
  • 与解构赋值结合
  • 将字符串转换为真正的数组

Array.of():用于将一数组,转换为数组

fill():数组实例(三个参数:第一个参数为替换成什么内容,第二个为替换的起始位置,第三个为替换的终止位置)   

set和map结构:

set

set本身是一个构造函数,用来生成set数据结构。此结构不会添加重复的值

map

map结构就是键值对的结构。

proxy拦截:

proxy:在目标对象之前架设一层拦截,外界对该对象的访问。都必须先通过这层拦截,因此,可以对外界的访问进行过滤和改写。

get()

get()方法用于拦截某个属性的读取操作,参数为:目标对象、属性名、proxy实例本身(this关键字指向的那个对象)

set()

set方法是用来拦截某个属性的赋值操作,参数为:目标对象、属性名、proxy实例本身。

async命令

async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。

await命令

正常情况下,await命令后面是一个 Promise 对象。如果不是,会被转成一个立即resolve的 Promise 对象。

constructor()

constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。

super()

类继承。如果你要用类继承的话,里面一定要写super(),他是指定父类的this的,否则会报错

浏览器加载

defer与async的区别是:defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。

ES6新语法

览器加载 ES6 模块,也使用<script>标签,但是要加入type="module"属性。浏览器对于带有type="module"的<script>,都是异步加载,不会造成堵塞浏览器,即等到整个页面渲染完,再执行模块脚本,等同于打开了<script>标签的defer属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值