JavaScript学习笔记(贰拾伍)

79 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天点击查看活动详情

ES9

Rest 参数与spread 扩展运算符在ES6已经引入,不过ES6中只针对数组

在 ES9 中为对象提供了像数组一样的rest参数 和 扩展运算符

reset 获取函数未定义的多余参数

//  reset 获取函数未定义的多余参数
  function connect({host,port,...user}) {
      console.log(host)
      console.log(port)
      console.log(user)
  // console.log(password)
}
  connect({
    host: '127.0.0.1',  port: 3306,  usename: 'admin',  password: 'admin',  type: 'mater'
  })

const skllOne = {
  Q: "天音波/回音击",
}
const skllTwo = {
  W: "金钟罩/铁布衫",
}
const sklThree = {
  E: "疾风骤雨",
}
const sklFour = {
  R: "猛龙摆尾",
}
//扩展运算符
const mangseng = {
  ...skllOne,  ...skllTwo,  ...sklThree, ...sklFour
}
console.log(mangseng)

正则表达式

正则表达式字面量,由包含在斜杠之间的模式组成: /ab+c/

// 声明一个字符串
let str = '<a href="http://www.baidu.com">百度</a>'

// 提取 URL 与 标签文本
const reg = /<a href="(.*)">(.*)</a>/;

// 执行
const result = reg.exec(str);
console.log(result[1])
console.log(result[2])

const reg2 = /<a href="(?<url>.*)">(?<text>.*)</a>/;
const result1 = reg2.exec(str)
console.log(result1)

正则表达式扩展 —— 断言:断言的组成之一是边界。对于文本、词或者模式,,边界可以用来表明它们的起始或终止部分(如向前断言,向后断言以及条件表达式)。

边界类断言:

  • ^:匹配输入的开头
  • $:匹配输入的结束
  • \b: 匹配一个单词的边界,一个字的字符前后没有另一个字的字符位置, 例如在字母和空格之间。
  • \B:匹配非单词边界。是上一个字符和下一个字符属于同一类型的位置:要么两者都必须是单词,要么两者都必须是非单词

其他断言:

  • ? 字符也可用作量词 x(?=y)
  • 向前断言: x 被 y 跟随时匹配 x (?<=y)x
  • 向后断言: x 跟随 y 的情况下匹配 x。
/ 声明字符串
let str = 'jifsdfs3234fsdlllf饭34发44啦啦啦';
// 正向断言
const reg = /\d+(?=啦)/;
const result = reg.exec(str);
console.log(result)

// 反向断言
const reg1 = /(?=饭)d+/;
const result1 = reg.exec(str)
console.log(result1)

dot . 元字符 除换行符以外的任意单个字符