ES6常用知识点梳理(1)

  • class

  • 新的数据类型——Symbol

  • 新的数据结构 set map

  • 模块化

  • Promise [本身是同步]

  • generator

  • async

let 和 const

=========================================================================

let 和 const 与 var 的区别:

1.增加块级作用域

在es6之前,js只有一种作用域叫做函数作用域。

2、没有预解析,不存在变量提升

3、不能重复定义

4、var声明的变量属于window, Let 和 const不是

const (const 声明的常量)和 let 的区别

1、初始化的时候必须赋值

2、一旦赋值无法改变

**注:**使用的时候尽量不要使用 var ,变量用 let ,常量用 const

解构赋值

==================================================================

ES6允许按照一 定模式,对变量进行赋值,这被称为解构.

数组模式

let [a,b,c]=[1,2,3]

对象模式

let {a,b,c}={a:1,b:2, c:3}

字符串模式

let [a,b,c]=‘aaa’

结构不成功

undefined

默认值

let [a=0,b,c]=[1,2,3]

字符串

=================================================================

字符串模板

可以支持换行

${} 里面放变量

标签模板

字符串的便利: for… of

字符串方法:

includes():返回布尔值,表示是否找到了参数字符串。

startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。

endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

repeat方法返回一个新字符串,表示将原字符串重复n次。【0没有 ,1是本身,负数报错,小数取前面整数】

padStart()用于头部补全【padStart(补位后总位数,补位的内容) ,只写参数一默认空格补齐,参数一大于参数二加本身内容时自动重复参数二截取】

padEnd()用于尾部补全【同上】

trimStart()去除头部空格

trimEnd()去除尾部空格

数组

================================================================

Array . from()

方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象

类数组有两类arguments ,通过获取元素得到的类数组.本质特征只有一点, 即必须有Length属性,和下标

Array . of()

用于将一组值, 转换为数组。

copyWithin()

在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组

Array. prototype . copyWithin(target, start = 0, end = this.length)

target (必需) :从该位置开始替换数据。如果为负值,表示倒数。

start (可选) :从该位置开始读取数据,默认为0。如果为负值,表示从末尾开始计算。

end (可选) :到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。

find() 和findIndex()

find(回调函数) 返回的是一个符合条件的值没有 符合条件undefined

findIndex(回调函数) 返回的是一个符合条件的下标没有符合 条件返回-1

fill()

fill(替换的内容) 全部替换

fill(替换的内容,开始位置)

fill(替换的内容,开始位置,结束位置)

includes()

查看是否有这个数据,返回true,false

flat()

数组的成员有时还是数组,用于将嵌套的数组"拉平”,变成- -维的数组。该方法返回一个新数组,对原数据没有影响

在这里插入图片描述

函数

================================================================

函数参数默认值

function(a=1, b=2){

}

length

指定了默认值以后,函数的Length属性,将返回没有指定默认值的参数个数。

也就是说,指定了默认值后,Length属性将失真。

name属性

函数的name属性,返回该函数的函数名。

这个属性早就被浏览器广泛支持,但是直到ES6, 才将其写入了标准

箭头函数

(1) 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

(2) 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

(3) 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用rest参数代替。

(4) 不可以使用yield命令,因此箭头函数不能用作Generator 函数。

【如果这里面是一个参数括号可以不写,没有参数,或者多个参数必须加()

如果这个函数体里面只有一句话,可以不用加{} return 省略 】

rest运算符 【…】

=========================================================================

又叫 ... 运算符,剩余参数运算符,扩展运算符

1、把非数组变成数组

2、把数组变成一堆数据

3、复制数组 【深拷贝】

4、合并数组

5、配合解构赋值

6、对象中使用

let{x,y,…z}={x:1,y:2,a:3,b:4};

7、复制对象

let o2={b:2};

let{…03}=o2;

8、合并对象

//复制数组 【深拷贝】

在这里插入图片描述

//合并数组

在这里插入图片描述

//配合解构赋值

在这里插入图片描述

对象

================================================================

ES6允许在大括号里面,直接写入变量和函数,作为对象的属性和方法

0bject . assign()对象合并

重名的属性,后面的覆盖前面的

object.assign()拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承属性),也不拷贝不可枚举的属性(enumerable:false)

0bject. assign()可以用来处理数组,但是会把数组视为对象。

0bject . is()

判断两个东西是否相等

class

===================================================================

class的写法

class类名{

}

继承

class 子类 extends父类 {

constructor() {

super() ;

}

}

实例属性的新写法

class 类名 {

属性=xxx;

}

静态方法

类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为"静态方法"。

父类的静态方法,可以被子类继承。

静态属性.

静态属性指的是Class本身的属性,而不是定义在实例对象上的属性

目前,只有这种写法可行,因为ES6明确规定,Class 内部只有静态方法,没有静态属性。现在有一个提案提供了类的静态属性,写法是在实例属性的前面,加上static关键字。

新的数据类型——Symbol

============================================================================

ES6之前对象属性名都是字符串,这容易造成属性名的冲突,为了保证每个属性的名字都是独一无二ES6引入SymboL

Symbol是一种新的原始数据类型,表示独一无二的值。它是JavaScript 语言的第七种数据类型,前六种是: undefined、 null、布尔值(Boolean)、字符串(String) 、数值(Number)、对象(Object) 。

Symbol值通过SymboL函数生成。这就是说,对象的属性名现在可以有两种类型,-种是原来就有的字符串,另- -种就是新增的Symbol 类型 凡是属性名属于SymboL 类型,就都是独一-无二的,可以保证不会与其他属性名产生冲突。

SymboL函数可以接受一个字符串作为参数,表示对SymboL 实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。

Symbol. description

Symbol作为属性名,遍历对象的时候,该属性不会出现在for…in. for… . of循环中,也不会被0bject. keys()、0bject . getOwnPropertyNames()、JSON. stringify()返回。

新的数据结构 set map

============================================================================

set它类似于数组,但是成员的值都是唯一 -的, 没有重复的值。

总结

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值