substring() 方法用于提取字符串中介于两个指定下标之间的字符。主要用于字符串截取
stringObject.substring(start,stop)
start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
end:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
例如:"abcdefg".substring(3,5)返回de,字符串的第3个字符是d(从0开始,即a是第0个字符),截取到第5个字符前(不包括第5个)
与 slice()方法不同的是,substring() 不接受负的参数。
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
stringObject.slice(start,end)
start:要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end:紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。
https://www.cnblogs.com/sqh17/p/8529401.html
1、splice(start,deletecount,item) 会改变原数组的方法。
arr.splice(i,n) 删除从i(索引值)开始之后的那个元素。返回值是删除的元素
参数: i 索引值 n 个数
splice(start,deletecount,item)方法:
2、split()是使用指定的分隔符字符串将字符串分割成子字符串,返回一个子字符串数组。
3、slice()方法可以对数组或字符串截取。
arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组。
** 2. 提取某个字符串的一部分,并返回一个新的字符串,不会改变原字符串。**
# ES6 symbol类型详解
https://juejin.cn/post/6925619440843227143
1、 定义:
symbol类型是新的原始数据类型,表示独一无二的值,其他的原始数据类型还有Number,String,Boolean,Null,Undefined;Object属于复杂数据类型。
2、symbols 作为对象的属性
3、利用Symbol的特性可定义内部私有属性或方法
forEach:没有返回值, 但不能使用break、continue和return语句
for…in:遍历数组索引、对象的属性。使用for…in遍历时,原型链上的所有属性都将被访问。
map: 有返回值。并且可以返回一个结果数组。但是map 遍历对象的话也会报错,所以map只能循环数组或者对象数组。
for...of :创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
循环返回的是value。
Maps(映射)
Map 对象就是保存 key-value(键值) 对。对象和原始值可以用作 key(键)或 value(值)。Map 对象根据其插入方式迭代元素。换句话说, for...of 循环将为每次迭代返回一个 key-value(键值) 数组。
Set(集合)
Set(集合) 对象允许你存储任何类型的唯一值,这些值可以是原始值或对象。 Set(集合) 对象只是值的集合。 Set(集合) 元素的迭代基于其插入顺序。 Set(集合) 中的值只能发生一次。如果您创建一个具有多个相同元素的 Set(集合) ,那么它仍然被认为是单个元素。
三、JavaScript Map 和 Object 的区别( https://www.cnblogs.com/ysx215/p/11387938.html )
在 Object 中, key 必须是简单数据类型(整数,字符串或者是 symbol),而在 Map 中则可以是 JavaScript 支持的所有数据类型,也就是说可以用一个 Object 来当做一个Map元素的 key。
Map 元素的顺序遵循插入的顺序,而 Object 的则没有这一特性。
Map 继承自 Object 对象。
需要准备的材料分别是:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html。
2、在index.html的<script>标签中,输入js代码:
var str = '1234A4567B789'
var aPos = str.indexOf('A')
var bPos = str.indexOf('B')
var r = str.substr(aPos + 1, bPos - aPos - 1)
document.body.innerText = r
3、浏览器运行index.html页面,打印出了A和B之间的字符串。