一.字符串扩展

1.indexOf和index

 之前做项目,遇到判断一个字符串是否存在,不清楚用index还是indexOf,百度之后,用了indexOf。indexOf:返回某个指定的字符串值在字符串中首次出现的位置 ,如果没有找到这个值就返回-1,这一点很好用,注意,indexOf对大小写敏感。index返回下拉列表中选项的索引位置。

  而ES6提供了3种判断字符串是否存在的方法。①.includes() 返回布尔值,是否找到该字符串 ②.startsWith() ③.endsWith() 他们可以提供第二个参数,表示搜索的位置,endsWith()和他们不同,他是针对前n个字符,二其他的是针对从第n个开始直到结束。

二.函数的扩展

1.箭头函数使用注意事项:

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

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

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

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

注意,this对象的指向是可变的,但是在箭头函数中,它是固定的

function foo() {setTimeout(() => {console.log('id:', this.id);}, 100);
}
var id = 21;
foo.call({ id: 42 });
// id: 42//如果是普通函数,执行时this应该指向全局对象window,这时输出21

三.数组扩展

1.Rest

  rest参数,形式为 "...变量名",用于获取函数多余参数,将多余参数放在数组中,和扩展运算符可以理解为互为逆函数

  扩展运算符:形式为"...",它是rest参数的逆运算,将一个数组转为用逗号分隔的参数序列

  例如:var list = ['大家好']  list.length =1,list[0]=大家好

  var list = [...'大家好']  list.length =3,list[0]=大,list[1]=家,list[2]=好

  扩展运算符最有用之一是:Math.max(...arr),比较数组中的最大值 ES5的写法是:Math.max.apply(null,[1,2,3])

2.扩展运算符的作用

(1).复制数组

// ES5
const a1 = [1,2]
const a2 = a1.concat()
// ES6
const a1 = [1,2]
const a2 = [...a1] 或者 const[...a2] = a1

(2).合并数组

// ES5
[1, 2].concat(more)
// ES6
[1, 2, ...more]var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];// ES5的合并数组
arr1.concat(arr2, arr3);
// [ 'a', 'b', 'c', 'd', 'e' ]// ES6的合并数组
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]

(3).与解构赋值结合(如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则报错)

// ES5
a = list[0], rest = list.slice(1)
// ES6
[a, ...rest] = list

转载于:https://www.cnblogs.com/alhh/p/8252211.html

ES6 (总结篇二)相关推荐

  1. ES6学习笔记二arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  2. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  3. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  4. mysql 基础篇(二) 账号、权限管理

    mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...

  5. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一

    点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一  今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...

  6. 在java中重写方法应遵循规则的包括_Java面试题集合篇二

    Java面试题之Java集合篇二1.遍历一个List有哪些不同的方式? List<String> strList = new ArrayList<>(); //使用for-ea ...

  7. 算法之数论应用篇(二)

    算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...

  8. 一台电脑怎么接两个显示器_电脑数码类目显示器 篇二:11.11抄作业,个人消费级显示器怎么选--20款好价显示器推荐_显示器...

    2020-11-09 21:56:2572点赞390收藏91评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的 ...

  9. 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型

    文章目录 CBOW 模型 基本结构 目标函数 梯度计算 Skip-gram 模型 基本结构 梯度计算 优缺点分析 系列文章: [word2vec]篇一:理解词向量.CBOW与Skip-Gram等知识 ...

最新文章

  1. linux下free源码,linux命令free源码解读:Procps free.c
  2. 企业如何突破增长瓶颈?
  3. B 树、B+ 树、B* 树
  4. 打包指令_Linux系统常用指令总结
  5. 缺少using namespace std;
  6. 【Elasticsearch】es CPU热点线程 HotThreads 源码解析
  7. 花生油和菜籽油哪个更健康?
  8. DBA+北京社群第三次线下沙龙归来
  9. [原创]Datagrid和Button控件
  10. win10壁纸存储位置_这是Windows 10存储其默认壁纸的位置
  11. 浅谈Clean Code
  12. python实现不重复排列组合_python 实现排列组合
  13. mysql清空表分区数据恢复_清空表数据恢复 mysql恢复某个表数据
  14. 蔡琴 经典收藏APE
  15. ARM交叉编译工具链分类说明
  16. 产品生命周期管理——高效的全生命周期的产品管理方法
  17. 手机网页UI框架jQuery Mobile介绍之按钮篇
  18. java盒图_盒须图简介 - Java报表工具技术讨论,Style Report 报表专题 - OSCHINA - 中文开源技术交流社区...
  19. 三分钟教你怎么把EPUB转MOBI
  20. 基于MATLAB的疲劳驾驶检测系统

热门文章

  1. 【GOF23设计模式】原型模式
  2. Java操作ftp,上传,下载,删除操作
  3. oracle-REDO日志文件分析(insert)
  4. 趁着对象泡脚的功夫,我把vueX吃透了
  5. [pytorch、学习] - 3.10 多重感知机的简洁实现
  6. http --- 密码、密钥、对称(公开)密钥加密系统、数字签名、数字证书的一些概念
  7. javascript --- 作用域和闭包
  8. Sencha ID的注册
  9. 导出数据生成excel
  10. [BZOJ3992]序列统计