String的正则API
替换:
衍生操作: 删除关键字: 其实将关键词替换为""
切割: 将一个字符串,按指定的切割符,切割成多段子字符串
2种:
简单切割: 切割符是固定的
var arr=str.split(“切割符”)
将str按指定的"切割符",切割为多段子字符串,保存在数组arr中
固定套路: 打散字符串为字符数组
var chars=str.split("")
复杂切割: 切割符不是固定的
var arr=str.split(/正则/i)
RegExp对象:
什么是: 保存一条正则表达式,并提供了用正则表达式执行验证和查找的API 的对象
何时: 只要在程序中保存和使用正则表达式,都要用RegExp对象
如何:
创建:
验证:
var bool=reg.test(str)
用正则reg,检测str是否符合正则的格式要求
问题: 正则默认只要找到部分内容与正则匹配就返回true
解决: 必须从头到尾完整匹配,才返回true
只要验证,必须前加^后加$,表示从头到尾的意思
查找:
获取每个关键词的内容和位置:
var arr=reg.exec(str)
在str中查找下一个符合reg要求的关键词的内容和位置
如果反复调用reg.exec(),则自动会向后找下一个。
返回值: arr:[ “0”:“关键词”, “index”: 关键词位置 ]
Function
什么是函数: 封装一项任务的步骤清单代码段的对象,再起一个名字。
为什么: 重用!
何时: 只要一段代码可能被反复使用,都要创建函数。
如何:
创建: 见PPT function1
重载(overload):
什么是: 相同函数名,不同形参列表的多个函数,在调用时,可自动根据传入实参的不同,选择对应的函数调用
为什么: 减少函数名的数量,减轻维护的负担
何时: 一件事,可能根据传入的参数不同,执行不同的操作时
如何:
问题: js语法默认不支持重载
因为js不允许多个同名函数同时存在
如果存在,最后一个函数会覆盖之前所有
解决: 使用arguments对象变通实现
什么是arguments对象: 每个函数内自动创建的,准备接受所有传入函数的实参的 类数组对象
自动创建: 不用自己创建,就可直接使用
接受所有实参:
类数组对象: 长的像数组的对象
vs 数组: 相同: 1. 下标 2. length 3. 遍历
不同: 类型不同,API不通用
何时: 只要不确定将来传入函数的参数个数时,就不定义形参列表,而是用arguments接住所有的实参值。
匿名函数:
什么是: 定义函数时,不写名的函数
何时: 如果一个函数只用一次,不会反复使用,就不起函数名
为什么: 节约内存!——使用一次后,自动释放!
如何:
2种场景: