ES6新增方法

ES6新增方法

1、新增声明命令 let 和 const
let 表示变量,const 表示常量
letconst 都是块级作用域。以 {} 代码块作为作用域范围 只能在代码块里面使用,不存在变量提升,只能先声明再使用,否则会报错。语法上,称为“暂时性死区”,在同一个代码块内,不允许重复声明
const 声明的是一个只读常量,在声明时就需要赋值。(如果 const 的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址不能改变,而变量成员是可以修改的。
2、模板字符串(Template String)
用一对反引号(``)标识
3、箭头函数

  • 写法
函数名=(形参)=>{……} 

当函数体中只有一个表达式时,{} 和 return 可以省略,当函数体中形参只有一个时,() 可以省略。

  • 特点
    箭头函数中的 this 始终指向箭头函数定义时的离 this 最近的一个函数,如果没有最近
    的函数就指向 window。

4、for…of 循环

var arr=["北京","上海","广东","深圳"];
for(var v of arr) {
	console.log(v); 
}

5、import 和 export
export 用于对外输出本模块(一个文件可以理解为一个模块)变量的接口
import 用于在一个模块中加载另一个含有 export
import 和 export 命令只能在模块的顶部,不能在代码块之中
6、Promise 对象

Promise 是异步编程的一种解决方案,将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

Promise 的 3 种状态:

  • Fulfilled 为成功的状态
  • Rejected 为失败的状态
  • Pending 既不是 Fulfilld 也不是 Rejected 的状态,可以理解为 Promise 对象实例创建时候的初始状态

7、结构赋值
解构赋值是对赋值运算符的扩展
8、…
展开运算符可以将数组或对象里面的值展开;还可以将多个值收集为一个变量
9、async、await
使用 async/await, 搭配 Promise,可以通过编写形似同步的代码来处理异步流程, 提高代码
的简洁性和可读性 async 用于申明一个function 是异步的,而 await 用于等待一个异步方法执行完成
10、Set 数据结构

Set 数据结构,类似数组。所有的数据都是唯一的,没有重复的值。它本身是一个构造函数。

  • Set 属性和方法
    Size() 数据的长度
    Add() 添加某个值,返回 Set 结构本身。
    Delete() 删除某个值,返回一个布尔值,表示删除是否成功。
    Has() 查找某条数据,返回一个布尔值。
    Clear()清除所有成员,没有返回值。
  • 主要应用场景:数组去重

var、let、const 之间的区别

区别

  • var 声明变量可以重复声明,而 let 不可以重复声明
  • var 是不受限于块级的,而 let 是受限于块级
  • var 会与 window 相映射(会挂一个属性),而 let 不与 window 相映射
  • var 可以在声明的上面访问变量,而 let 有暂存死区,在声明的上面访问变量会报错
  • const 声明之后必须赋值,否则会报错
  • const 定义不可变的量,改变了就会报错
  • const 和 let 一样不会与 window 相映射、支持块级作用域、在声明的上面访问变量会报

module、export、import 有什么作用

module、export、import 是 ES6 用来统一前端模块化方案的设计思路和实现方案。

export、import 的出现统一了前端模块化的实现方案,整合规范了浏览器/服务端的模块化方
法,用来取代传统的 AMD/CMD、requireJS、seaJS、commondJS 等等一系列前端模块不同的实现方案,使前端模块化更加统一规范,JS 也能更加能实现大型的应用程序开发。
import 引入的模块是静态加载(编译阶段加载)而不是动态加载(运行时加载)。
import 引入 export 导出的接口值是动态绑定关系,即通过该接口,可以取到模块内部实时的
值。

使用箭头函数应注意什么/箭头函数和普通函数的区别

区别

  • 用了箭头函数,this 就不是指向 window,而是父级(指向是可变的)
  • 不能够使用 arguments 对象
  • 不能用作构造函数,这就是说不能够使用 new 命令,否则会抛出一个错误
  • 不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数

ES6 的模板字符串有哪些新特性

模板字符串新特性

  • 基本的字符串格式化。将表达式嵌入字符串中进行拼接。用${}来界定。
  • 在 ES5 时我们通过反斜杠(/)来做多行字符串或者字符串一行行拼接。ES6 反引号(``)就能解
  • 类模板字符串的功能

实现一个类模板字符串的功能

let name = '十一';
let age = 11; 
let str = '你好,${name} 已经 ${age}岁了' 
str = str.replace(/\${([^}]*)\}/g,function(){
	return eval(arguments[1]); 
})
console.log(str);//你好,十一 已经 11 岁了

Set、Map 的区别

区别
应用场景 Set 用于数据重组,Map 用于数据储存
Set:

  • 成员不能重复
  • 只有键值没有键名,类似数组
  • 可以遍历,方法有 add, delete,has

Map:

  • 本质上是健值对的集合,类似集合
  • 可以遍历,可以跟各种数据格式转换

setTimeout、Promise、Async/Await 的区别

事件循环中分为宏任务队列和微任务队列

  • setTimeout 的回调函数放到宏任务队列里,等到执行栈清空以后执行
  • Promise.then 里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码执行完再执行
  • async 函数表示函数里面可能会有异步方法,await 后面跟一个表达式
  • async 方法执行时,遇到 await 会立即执行表达式,然后把表达式后面的代码放到微任务队
    列里,让出执行栈让同步代码先执行

Promise 有几种状态

Promise 有几种状态
三个状态:pending、fulfilled、reject
两个过程:padding -> fulfilled、padding -> rejected
Promise 什么时候会进入 catch
当 pending 为 rejected 时,会进入 catch

Promise 中 reject 和 catch 处理上有什么区别

reject 是用来抛出异常,catch 是用来处理异常
reject 是 Promise 的方法,而 catch 是 Promise 实例的方法
reject 后的东西,一定会进入 then 中的第二个回调,如果 then 中没有写第二个回调,则进入
catch
网络异常(比如断网),会直接进入 catch 而不会进入 then 的第二个回调

理解 async await

async await 是用来解决异步的,async 函数是 Generator 函数的语法糖
使用关键字 async 来表示,在函数内部使用 await 来表示异步
async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数
当函数执行的时候,一旦遇到 await 就会先返回,等到异步操作完成,再接着执行函数体内
后面的语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值