day15内容
数组
声明
构造函数声明
new Array()
new Array(20) length=20
new Array(‘hello’,‘world’) [‘hello’,‘world’]
数组字面量声明
[]
[] arr.length = 20
[‘hello’,‘world’]
数组长度,可读可写。设置了一个小于数组长度的元素,修改对应位置上的元素。设置了一个大于等于数组长度的元素,追加数组元素,扩大了数组的长度
arr.length=5 arr[arr.length] = ‘hello’; arr.length变成6
数组方法
pop() 移除最后一个元素,返回移除的元素
push() 往数组的末尾放置元素,返回数组长度
shift() 移除第一个元素,返回移除的元素
unShift() 往数组的头部放置元素,返回数组长度
reverse() 数组反转
sort() 数组排序,可以接受比较器作为参数
concat() 连接数组
slice() 截取数组。参数开始位置,结束位置。如果没有结束位置,那么截取到数组的末尾。如果有结束位置,从开始位置截取到结束位置,但是不包含结束位置的元素。
splice() 删除数组的元素,可以删除,插入,替换
参数 开始位置,删除的项数,插入的元素
从开始位置删除对应的项数的元素,然后将要插入的元素从开始位置进行插入。
indexOf() 从前往后获取实参在数组中的位置,如果有返回索引,如果没有,返回-1
lastIndexOf() 从后往前获取实参在数组中的位置,如果有返回索引,如果没有,返回-1
迭代方法
every(function(item,index,arr){},funThis)
是否都满足某个条件,如果都满足,那么返回true,否则返回false
some(function(item,index,arr){},funThis)
是否有一个满足某个条件,如果有,那么返回true,否则返回false
filter(function(item,index,arr){},funThis)
过滤出满足条件的元素组成的数组,返回数组
map(function(item,index,arr){},funThis)
映射出元素的某部分内容,返回内容数组
forEach(function(item,index,arr){},funThis)
遍历数组。
item元素,index索引,arr遍历的数组
正则表达式
声明
构造函数
new RegExp(‘abc’,‘gim’)
字面量
/abc/gim
修饰符
g 全局,会维护lastIndex属性,代表下次开始检索的位置
i 忽略大小写
m 多行匹配
属性
global 是否全局匹配
ignoreCase 是否忽略大小写
multiline 是否多行
lastIndex 维护的下次开始检索的位置。如果没有g修饰符,一直都是0。如果有g修饰符,记录的是下次开始检索的位置
source 正则表达式文本
方法
test() 判断字符串是否符合正则表达式规则,如果符合,返回true,否则返回false
var pattern = /abc/img;
pattern.test(‘hello andabc world’);
exec() 返回符合正则表达式规则的字符串数组,数组0号位置放的是字符串,还有input属性和index属性,
如果返回null,代表本次匹配没有
选择匹配
在正则表达式文本那里使用| 代表从|左右选择一种匹配上就可以
var pattern = /b|c/img;
正则表达式对象的方法
pattern.test(str) 有没有,有返回true,没有返回false
pattern.exec(str) 匹配的字符串单个数组
String中对正则表达式的支持
str.search(pattern) 有没有,有返回位置,没有返回-1
str.match(pattern) 所有匹配的字符串组成的数组
str.replace(pattern) 替换
str.split(pattern) 按照固定规则进行裁切,返回数组
\s 空白字符
- 代表0或者多次
正则表达式文本编写规则
abc
匹配规则 匹配次数
a 1
b 1
c 1
\s *
+
{2,}
{3,6}
… …
\w…
“1, 2, 3, 4, 5”.split(/\s*,\s*/);
[1,2,3,4,5]