Web前端之JS高级(2)—— String的正则API、RegExp、Function

  1. String的正则API
    替换:
    衍生操作: 删除关键字: 其实将关键词替换为""
    切割: 将一个字符串,按指定的切割符,切割成多段子字符串
    2种:

  2. 简单切割: 切割符是固定的
    var arr=str.split(“切割符”)
    将str按指定的"切割符",切割为多段子字符串,保存在数组arr中
    固定套路: 打散字符串为字符数组
    var chars=str.split("")

  3. 复杂切割: 切割符不是固定的
    var arr=str.split(/正则/i)

  4. RegExp对象:
    什么是: 保存一条正则表达式,并提供了用正则表达式执行验证和查找的API 的对象
    何时: 只要在程序中保存和使用正则表达式,都要用RegExp对象
    如何:
    创建:

    1. 用/创建(直接量): var reg=/正则/ig
      何时: 如果正则表达式是固定不变的
    2. 用new创建: var reg=new RegExp(“正则”,“ig”)
      何时: 如果正则表达式需要在运行时才动态生成时
      API:
  5. 验证:
    var bool=reg.test(str)
    用正则reg,检测str是否符合正则的格式要求
    问题: 正则默认只要找到部分内容与正则匹配就返回true
    解决: 必须从头到尾完整匹配,才返回true
    只要验证,必须前加^后加$,表示从头到尾的意思

  6. 查找:
    获取每个关键词的内容和位置:
    var arr=reg.exec(str)
    在str中查找下一个符合reg要求的关键词的内容和位置
    如果反复调用reg.exec(),则自动会向后找下一个。
    返回值: arr:[ “0”:“关键词”, “index”: 关键词位置 ]

  7. Function
    什么是函数: 封装一项任务的步骤清单代码段的对象,再起一个名字。
    为什么: 重用!
    何时: 只要一段代码可能被反复使用,都要创建函数。
    如何:
    创建: 见PPT function1

重载(overload):
什么是: 相同函数名,不同形参列表的多个函数,在调用时,可自动根据传入实参的不同,选择对应的函数调用
为什么: 减少函数名的数量,减轻维护的负担
何时: 一件事,可能根据传入的参数不同,执行不同的操作时
如何:
问题: js语法默认不支持重载
因为js不允许多个同名函数同时存在
如果存在,最后一个函数会覆盖之前所有
解决: 使用arguments对象变通实现
什么是arguments对象: 每个函数内自动创建的,准备接受所有传入函数的实参的 类数组对象
自动创建: 不用自己创建,就可直接使用
接受所有实参:
类数组对象: 长的像数组的对象
vs 数组: 相同: 1. 下标 2. length 3. 遍历
不同: 类型不同,API不通用
何时: 只要不确定将来传入函数的参数个数时,就不定义形参列表,而是用arguments接住所有的实参值。

匿名函数:
什么是: 定义函数时,不写名的函数
何时: 如果一个函数只用一次,不会反复使用,就不起函数名
为什么: 节约内存!——使用一次后,自动释放!
如何:
2种场景:

  1. 回调函数: 自己定义的函数,自己不调用,而是传给其它对象或函数,被别人调用。
    arr.sort(function(a,b){return a-b})
    xhr.onreadystatechange=function(){ … }
    pool.query(sql,[参数],function(err,result){ … })
  2. 匿名函数自调: 定义函数后,立刻自己调用自己
    为什么: 避免使用全局变量,造成全局污染
    何时: 所有js代码都应该封装在一个匿名函数自调中
    如何:
    (function(){

    })()//调用后,匿名函数内的局部变量都释放了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值