ES6 (总结篇二)
一.字符串扩展
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 (总结篇二)相关推荐
- ES6学习笔记二arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- 【SSRS】入门篇(二) -- 建立数据源
原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- mysql 基础篇(二) 账号、权限管理
mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...
- 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一 今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...
- 在java中重写方法应遵循规则的包括_Java面试题集合篇二
Java面试题之Java集合篇二1.遍历一个List有哪些不同的方式? List<String> strList = new ArrayList<>(); //使用for-ea ...
- 算法之数论应用篇(二)
算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...
- 一台电脑怎么接两个显示器_电脑数码类目显示器 篇二:11.11抄作业,个人消费级显示器怎么选--20款好价显示器推荐_显示器...
2020-11-09 21:56:2572点赞390收藏91评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的 ...
- 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型
文章目录 CBOW 模型 基本结构 目标函数 梯度计算 Skip-gram 模型 基本结构 梯度计算 优缺点分析 系列文章: [word2vec]篇一:理解词向量.CBOW与Skip-Gram等知识 ...
最新文章
- linux下free源码,linux命令free源码解读:Procps free.c
- 企业如何突破增长瓶颈?
- B 树、B+ 树、B* 树
- 打包指令_Linux系统常用指令总结
- 缺少using namespace std;
- 【Elasticsearch】es CPU热点线程 HotThreads 源码解析
- 花生油和菜籽油哪个更健康?
- DBA+北京社群第三次线下沙龙归来
- [原创]Datagrid和Button控件
- win10壁纸存储位置_这是Windows 10存储其默认壁纸的位置
- 浅谈Clean Code
- python实现不重复排列组合_python 实现排列组合
- mysql清空表分区数据恢复_清空表数据恢复 mysql恢复某个表数据
- 蔡琴 经典收藏APE
- ARM交叉编译工具链分类说明
- 产品生命周期管理——高效的全生命周期的产品管理方法
- 手机网页UI框架jQuery Mobile介绍之按钮篇
- java盒图_盒须图简介 - Java报表工具技术讨论,Style Report 报表专题 - OSCHINA - 中文开源技术交流社区...
- 三分钟教你怎么把EPUB转MOBI
- 基于MATLAB的疲劳驾驶检测系统