ES6新增,常用方法


前言

提示:ES6只是泛指,其实6以后还有7,8,9,10,11等,统称为ES6


提示:以下是本篇文章正文内容,下面案例可供参考

一、新增了块级作用域LET,CONST?

ES5只有全局作用域和函数作用域,没有块级作用域,let则为JavaScript新增了块级作用域,用它所声明的变量,只在let命令所在的代码块内有效。
const也用来声明常量, 一旦声明,常量的值就不能改变。

二、模板对象

ES6之前拼接字符串对象,一般使用如下方式

var firstName = 'Fei';
var lastName = 'Zhang';
console.log('your name is ' + firstName + ' ' + lastName + '.');

ES6中可以使用${}和··的方式来做

var firstName = 'Fei';
var lastName = 'Zhang';
console.log('your name is ${firstName} %{lastName}.');

三、箭头函数

=>可以是function写法简洁清晰很多,主要是将this的指向改变为上下文栈

四、解构赋值

解构赋值,最主要的就是等号两边的的数据类型相等,如果是数组就是快速声明变量并赋值,如果是对象的话就是快速获取对象当中的某个属性的属性值。

五、Set和Map

去重,Set数据只有value,没有key

let s= new Set([1,1,2,2,3,3])
console.log(s)
s=[1,2,3]

Map结构和Object结构类似,但是Object结构的“键”的为字符串,Map结构的“键”各种类型
的值(包括对象)都可以当作键(Object:“字符串—值”;Map:“值—值”)

Map可以接受一个数组作为参数。数组的成员是一个个表示键值对的数组
var map = new Map([
 ['name', '张三'],
 ['title', 'Author']
]);
=====>实际上执行的是下面的算法:
var items = [
 ['name', '张三'],
 ['title', 'Author']
];
var map = new Map();
items.forEach(([key, value]) => map.set(key, value));

六、Promise对象

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject (也是两个函数)

promise.then(function(value) {
 // success
})
.catch( function(error) {
 // failure
});

七、async函数

async 表示函数里有异步操作, await必须在async函数的上下文中,紧跟在后面的表达式需要等待结果(主要的意图是用来等待 Promise 对象的状态被 resolved,也就是为了异步操作同步化);
async 函数的返回值是 Promise 对象,可以使用then方法指定下一步操作(只有 async 函数内部的异步操作全部执行完,除非遇到 return 语句或者抛出错误,才会执行 then 方法指定的回调函数)

八、includes(), startsWith(), endsWith()

ES5中的indexOf方法,用来检索字符串中指定字符串出现的位置 而ES6又提供了三种新方法。

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。

九、数组实例的find()和findIndex()

find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
切记:是返回第一个符合条件的值,就不会找下一个了。
findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。另外,这两个方法都可以发现NaN,弥补了数组的IndexOf方法的不足。

十、扩展运算符

扩展运算符(spread)是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

十一、Object.assign()

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
1.注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
2.对于这种嵌套的对象,一旦遇到同名属性,Object.assign的处理方法是替换,而不是添加。
3.如果该参数不是对象,则会先转成对象,然后返回。
4.undefined和null无法转成对象,所以如果它们作为参数,就会报错。
5.非对象参数出现在源对象的位置(即非首参数),那么处理规则有所不同。首先,这些参数都会转成对象,如果无法转成对象,就会跳过。这意味着,如果undefined和null不在首参数,就不会报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值