Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WebAPIs学习笔记

WebAPIs学习笔记

作者头像
小城故事
发布于 2023-04-03 01:45:00
发布于 2023-04-03 01:45:00
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

WebAPIs基本学习笔记

  • 作用:使用JS操作html和浏览器
  • 分类:DOM(文档对象模型)、BOM(浏览器对象模型)

DOM的内容

  • DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的API
  • 简单来说:DOM是浏览器提供的一套专门用来 操作网页内容 的功能
  • 作用:开发网页内容特效和实现用户交互

DOM树

  • 内容:将HTML以树状的内容直观显示出来,也称文档树
  • 作用:直观体现出标签与标签的关系
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    文本
    <a href="">链接</a>
    <h1 class="" id=""></h1>
</body>
</html>

获取DOM元素

CSS选择器 匹配到第一个元素,返回一个HTMLElement对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//语法
document.querySelector('CSS选择器')

匹配多个选择器,返回NodeList对象集合,得到是一个伪数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.querySelectorAll('CSS选择器')

其他方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementByid('id名')
document.getElementByTagName('标签名')
document.getElementByClassName('类名')

设置和修改DOM元素

修改标签文本内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//语法:
元素.innerText='' 
//只能识别内容,不能解释标签
//可以解析标签 即:
元素.innerHTML='<h3>会对html标签进行解析</h3>' 

设置与修改DOM元素的属性

语法:对象.属性=值,最常见的属性比如: hreftitlesrc

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//例子
let pic =document.querySelector('img')
pic.src='./images/pic2.jpg'

通过style修改CSS属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let box =document.querySelector('div')
box.style.width='300px'
box.style.paddingLeft ='300px'
//注:有链接-符号的需要转换为小驼峰命名法
//即:padding-left-->paddingLeft

修改标签类名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
元素.clssName='新类名'
//注:直接使用 className 赋值会覆盖以前的类名
//保留可写
元素.clssName='旧类名 新类名'

通过clssList操作css类名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//增加一个类名
元素.classList.add('类名')
//删除一个类
元素.classList.remove('类名')
//切换一个类,存在就删除,不存在就增加
元素.classList.toggle('类名')

修改表单属性

作用:表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框

获取:DOM对象.属性名;设置:DOM对象.属性名=新值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
表单.value='用户名'
表单.type='password'

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示 如果为true 代表添加了该属性 如果是false 代表移除了该属性 比如: disabled、checked、selected

定时器-setInterval() 间歇函数

开启定时器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setInterval(函数,间隔时间) //时间也毫秒为单位,1秒==1000ms

关闭定时器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let timer =setInterval(函数,间隔时间)
clearInterval(timer)

事件

事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上单击一个按钮

事件监听

让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 注册事件

语法:元素.addEventListener('事件',要执行的函数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//获取元素
let btn=document.querySelector('button')
//事件监听
btn.addEventListener('click',function(){
    alert('被点击了')
})

事件监听三要素:

  • 事件源:那个dom元素被事件触发了,要获取dom元素
  • 事件:有什么方式触发,比如鼠标点击click
  • 事件触发时调用的函数

版本

DOM L0

语法:事件源.on事件=function(){}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
btn.onclick=function(){
   alert('点击')
}

DOM L2 :star:

语法:事件源.addEventlistener(事件,事件处理函数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
btn.addEventListener('click',function(){
    alert('点击')
})

事件类型


高阶函数

高阶函数可以被简单理解为函数的高级应用,JavaScript 中函数可以被当成【值】来对待,基于这个特性实现函数的高级应用

函数表达式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let counter=function(x,y){
    return x+y
}
//调用
let result=counter(1,2)

回调函数

如果将函数A当作参数传递给函数B时,我们称函数A为回调函数 回调函数本质还是函数,只不过把它当成参数使用

使用场景

定时器setInterval() 间歇函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function fn(){
    alert('我是回调函数')
}
//fn传递了给setInterval ,fn就是回调函数
setInterval(fn,1000)

事件监听

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
btn.addEventListener('click',function(){
     alert('我是回调函数')
})

环境变量

环境对象指的是函数内部特殊的变量 this ,它代表着当前函数运行时所处的环境 作用:弄清楚this的指向,可以让我们代码更简洁

  • 函数的调用方式不同,this 指代的对象也不同
  • 【谁调用, this 就是谁】 是判断 this 指向的粗略规则
  • 直接调用函数,其实相当于是 window.函数,所以 this 指代 window

编程思想

排他思想

当前元素为A状态,其他元素为B状态

使用:

  1. 干掉所有人 使用for循环
  2. 复活他自己 通过this或者下标找到自己或者对应的元素
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//给点击的li加上pink类
<li class='pink'>第一个</li>
   <li>第二个</li>
   <li>第三个</li>
 	 let lis = document.querySelectorAll('li')
   for (let i = 0; i < lis.length; i++) {
           lis[i].addEventListener('click', function () {
             // 干掉所有人
              for (let j = 0; j < btns.length; j++) {
                 btns[j].classList.remove('pink')
              }
               //复活自己
                this.classList.add('pink')
               //==================分割线===========================
               //高级做法
               // 我只需要找出那个唯一的 pink类,删除
               document.querySelector('.pink').classList.remove('pink')
               // 我的
               this.classList.add('pink')
           })
       }

DOM结点

DOM树里每一个内容都称之为节点

结点类型

  • 元素结点 :star: 所有的标签:比如 body divhtml是根节点
  • 属性结点 所有的属性,比如 herf
  • 文本结点 所有的文本

结点的查找

结点的关系:父节点,子节点,兄弟节点

  • 父节点的查找 使用parentNode属性,返回最近一级的父节点,找不到返回null 语法:子元素.parentNode
  • 子结点的查找 childNodes - 获得所有的子节点,包括文本节点(空格、换行)、注释节点等 chilrden :star: -获得所有元素节点,返回的还是一个伪数组
  • 兄弟结点的查找 nextElementSibling 查找下一个兄弟结点 previousElementSibling 查找上一个兄弟节点

结点的增加

一般情况下,我们新增节点,按照如下操作 1创建一个新的节点 2把创建的新的节点放入到指定的元素内部

创建结点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
documnet.createElement('标签名')

追加结点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//插入父元素的最后
父元素.appendChild(要插入的元素)
//插到某个子元素的前面
父元素.insertBefore(要插入的元素,在哪个元素的前面)

结点的克隆

cloneNode会克隆出一个跟原标签一样的元素,括号内传入布尔值 若为true,则代表克隆时会包含后代节点一起克隆 若为false,则代表克隆时不包含后代节点 默认为false

语法元素.cloneNode(布尔值)

结点的删除

删除节点和隐藏节点(display:none) 有区别的: 隐藏节点还是存在的,但是删除,则从html中删除节点在 JavaScript 原生DOM操作中,要删除元素必须通过父元素删除

语法父元素.removeChild(要删除的元素)


重绘和回流

浏览器进行界面渲染

  • 解析(Parser)HTML,生成DOM树(DOM Tree)
  • 同时解析(Parser) CSS,生成样式规则 (Style Rules)
  • 根据DOM树和样式规则,生成渲染树(Render Tree)
  • 进行布局 Layout(回流/重排):根据生成的渲染树,得到节点的几何信息(位置,大小)
  • 进行绘制 Painting(重绘): 根据计算和获取的信息进行整个页面的绘制
  • Display: 展示在页面上

回流(重排)

当 Render Tree 中部分或者全部元素的尺寸、结构、布局等发生改变时,浏览器就会重新渲染部分或全部文档的过程称为回流,简单理解影响到布局了,就会有回流

会导致回流的操作

  • 页面的首次刷新
  • 浏览器的窗口大小发生改变
  • 元素的大小或位置发生改变
  • 改变字体的大小
  • 内容的变化(如:input框的输入,图片的大小)
  • 激活css伪类 (如::hover)
  • 脚本操作DOM(添加或者删除可见的DOM元素)

重绘

由于节点(元素)的样式的改变并不影响它在文档流中的位置和文档布局时(比如:color、background-color、 outline等), 称为重绘

注:重绘不一定引起回流,而回流一定会引起重绘。

练习:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let s = document.body.stlye
s.padding = '2px' //重排 + 重绘
s.border = '1px solid red' // 重排 + 重绘
s.color = 'red'//重绘
s.backgroundColor = '#666' //重绘
s.fontSize= "14px" // 重排 + 重绘

事件高级

事件对象

内容:事件对象是个对象,这个对象里有事件触发时的相关信息 例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息

获取方法:

在事件绑定的回调函数的第一个参数就是事件对象

一般命名为 even 、ev 、e

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
元素.addEventListener('click',function(e){
    //e就是事件对象
})

常用事件对象的属性

  • type :获取当前事件类型
  • clientX / clientY :获得光标相对于浏览器可见窗口左上角的位置
  • offsetX / offsetY : 获取光标相对于当前DOM元素左上角的位置
  • key :用户按下的键盘的值,现在不提倡用 keyCode

事件流

事件流指的是事件完整执行过程的流动路径,两个阶段:事件捕获和事件冒泡

  • 说明:假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段
  • 简单来说:捕获阶段是 从父到子 冒泡阶段是从子到父

事件冒泡

当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发 简单理解:当一个元素触发事件后,会依次向上调用所有父级元素的同名事件 事件冒泡是默认存在的

事件捕获

从DOM的根元素开始去执行对应的事件 (从外到里)

说明:

  • addEventListener第三个参数传入true代表是捕获阶段触发(很少使用)
  • 若传入false代表冒泡阶段触发,默认就是false
  • 若是用 L0 事件监听,则只有冒泡阶段,没有捕获

阻止事件流动

  • 因为默认就有冒泡模式的存在,所以容易导致事件影响到父级元素
  • 若想把事件就限制在当前元素内,就需要阻止事件流动
  • 阻止事件流动需要拿到事件对象
  • 语法:事件对象.stopProagation()
  • 此方法可以阻断事件流动传播,不光在冒泡阶段有效,捕获阶段也有效

鼠标经过事件

  • mouseovermouseout 会有冒泡效果
  • mouseentermouseleave 没有冒泡效果(推荐)

两种注册事件的区别:

  • 传统on注册(L0)
    • 同一个对象,后面注册的事件会覆盖前面注册(同一个事件)
    • 直接使用null覆盖偶就可以实现事件的解绑
    • 都是冒泡阶段执行的
  • 事件监听注册(L2)
    • 语法: addEventListener(事件类型, 事件处理函数, 是否使用捕获)
    • 后面注册的事件不会覆盖前面注册的事件(同一个事件)
    • 可以通过第三个参数去确定是在冒泡或者捕获阶段执行
    • 必须使用removeEventListener(事件类型, 事件处理函数, 获取捕获或者冒泡阶段)
    • 匿名函数无法被解绑

事件委托

事件委托其实是利用事件冒泡的特点, 给父元素添加事件,子元素可以触发

  • 优点:给父级元素加事件(可以提高性能)
  • 实现:事件对象.target 可以获得真正触发事件的元素

滚动事件

作用:很多网页需要检测用户把页面滚动到某个区域后做一些处理, 比如固定导航栏,比如返回顶部

事件名 scroll

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//可以给window或document添加滚动事件来监听整个页面
window.addEventListener('scroll',function(){
    //要执行的操作
})

加载事件

load 事件

加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件

为什么要学?

  • 有些时候需要等页面资源全部处理完了做一些事情
  • 老代码喜欢把 script 写在 head 中,这时候直接找 dom 元素找不到

事件名:load

监听页面所有资源加载完毕:

给 window 添加 load 事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.addEventListener('load',function(){
    //要执行的操作
})

注意:不光可以监听整个页面资源加载完毕,也可以针对某个资源绑定load事件

DOMContentLoaded

当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而需等待样式表全加载

事件名:DOMContentLoaded

监听页面DOM加载完毕:

给 document 添加 DOMContentLoaded 事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.addEventListener('DOMContentLoaded',function(){
    //要执行的操作
})

元素大小和位置

三大家族

  • scroll家族
  • offest家族
  • client家族

scroll家族

作用:检测页面滚动的距离

获取宽高

  • 获取元素的内容总宽高(不包含滚动条)返回值不带单位
  • scrollWidth 和 scrollHeight

获取位置(属性可修改)

  • 获取元素内容往左、往上滚出去看不到的距离
  • scrollLeft和scrollTop
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div.addEventListener('scroll',function(){
    console.log(this.scrollTop)
})

注:document.documentElement :HTML 文档返回对象为HTML元素

offest家族

  • 获取宽高
    • 获取元素的自身宽高、包含元素自身设置的宽高、padding、border
    • offsetWidth 和 offsetHeight
  • 获取位置(只读,不可修改)
    • 获取元素距离自己定位父级元素的左、上距离

client家族

  • 获取宽高
    • 获取元素的可见部分宽高(不包含边框,滚动条等)
    • clientWidth和clientHeight
  • 位置
    • clientLeft和clientTop 注意是只读属性

resize事件

  • 改变窗口大小的时候触发的事件,类似css3媒体查询

Window对象

BOM

浏览器对象模型

  • window 是浏览器内置的全局对象,我们所学习的 web apis 的知识内容都是基于 window 对象实现的
  • window 对象下包含了 navigatorlocationdoucment historysrceen 5个属性,即 BOM
  • document 是实现 DOM 的基础,它其实是依附于 window 的属性
  • 依附于 window 对象的所有属性和方法,使用时可以省略 window

定时器-延时函数

JavaScript 内置的一个用来让代码延迟执行的函数,叫 setTimeout

语法:setTimeout(回调函数,等待的毫秒数)

setTimeout 仅执行一次,简单来说把一段代码延迟执行

清除延时函数语法 :clearTimeout(延时函数的id)

结合函数的递归可以实现 setInterval 间歇函数 一样的功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function myInterval(){
    let d=new date();
    //写入页面
    clock.innertext=d.toLocaleString();
    //调用自己 一直循环,倒计时效果
    setTimeout(myInterval,1000);  
}
myInterval();

JS执行机制 (面试):star:

JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。。这是因为 Javascript 这 门脚本语言诞生的使命所致——JavaScript 是为处理页面中用户的交互,以及操作 DOM 而诞生的。比 如我们对某个 DOM 元素进行添加和删除操作,不能同时进行。 应该先进行添加,之后再删除。

单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这样所导致的问 题是: 如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。

同步和异步

为了解决这个问题,利用多核 CPU 的计算能力,HTML5 提出 Web Worker 标准,允许 JavaScript 脚本创建多个线程。于是,JS 中出现了同步和异步。

  • 同步
    • 前一个任务执行完才执行后一个任务,程序执行的顺序和代码排列顺序一样
  • 异步
    • 执行一个某个任务费很长时间,在做这个任务的同时,还可以去处理其他的任务 比如:做饭时,等水开的期间可以去其他事,比如切菜
  • 他们的本质区别: 这条流水线上各个流程的执行顺序不同。

  • 同步任务
    • 同步任务都在主线程上执行,形成一个执行栈。
  • 异步任务
    • JS 的异步是通过回调函数实现的
    • 一般来说异步任务有以下三种类型 1、普通事件,如 click、resize 等 2、资源加载,如 load、error 等 3、定时器,包括 setInterval、setTimeout 等
    • 异步任务相关会添加的任务队列(消息队列)中

执行机制

  1. 先执行执行栈里面的同步任务
  2. 异步任务放在消息队列中
  3. 一旦执行栈的执行任务完毕,系统会依次读取消息队列里的异步任务,被读取的异步任务 结束等待状态,进入执行栈,开始执行

事件循环(event loop)

由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环( event loop)


location对象

location 的数据类型是对象,它拆分并保存了 URL 地址的各个组成部分

常用属性和方法:

  • href 属性获取完整的 URL 地址,对其赋值时用于地址的跳转
  • search 属性获取地址中携带的参数,符号 ?后面部分
  • hash 属性获取地址中的啥希值,符号 # 后面部分
  • reload 方法用来刷新当前页面,传入参数 true 时表示强制刷新

语法:loaction.属性 loactiom.方法()

navigator对象

navigator的数据类型是对象,该对象下记录了浏览器自身的相关信息

常用属性和方法: 通过 userAgent 检测浏览器的版本及平台

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 检测 userAgent(浏览器信息)
!(function () {
const userAgent = navigator.userAgent
// 验证是否为Android或iPhone
const android = userAgent.match(/(Android);?[\s\/]+([\d.]+)?/)
const iphone = userAgent.match(/(iPhone\sOS)\s([\d_]+)/)
// 如果是Android或iPhone,则跳转至移动站点
if (android || iphone) {
location.href = 'http://m.itcast.cn'
}
})()

histroy对象

history 的数据类型是对象,该对象与浏览器地址栏的操作相对应,如前进、后退、历史记录等

history对象和方法

作用

back()

可以后退功能

forward()

可以前进功能

go(参数)

前进,后退功能,参数决定,-1后退,1前进

本地存储

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在 本地存储大量的数据,HTML5规范提出了相关解决方案

  1. 数据存储在用户浏览器中
  2. 设置、读取方便、甚至页面刷新不丢失数据
  3. 容量较大,sessionStorage和localStorage约 5M 左右

localStorage

  1. 生命周期永久生效,除非手动删除 否则关闭页面也会存在
  2. 可以多窗口(页面)共享(同一浏览器可以共享)
  3. 以键值对的形式存储使用

语法

  • 存储数据:localStorage.setItem(key, value)
  • 获取数据:localStorage.getItem(key)
  • 删除数据:localStorage.removeItem(key)

存储复杂数据类型存储:

本地只能存储字符串,无法存储复杂数据类型.需要将复杂数据类型转换成JSON字符串,在存储到本地

JSON.stringify(复杂数据类型) :

将复杂数据转换成JSON字符串 存储 本地存储中

JSON.parse(JSON字符串):

将JSON字符串转换成对象 取出 时候使用


sessionStorage(了解) 1. 生命周期为关闭浏览器窗口 2. 在同一个窗口(页面)下数据可以共享 3. 以键值对的形式存储使用 4. 用法跟localStorage 基本相同

自定义属性

固有属性:

标签天生自带的属性 比如class id title等, 可以直接使用点语法操作

自定义属性:

由程序员自己添加的属性,在DOM对象中找不到, 无法使用点语法操作,必须使用专门的API

  • 获取自定义属性 :getAttribute('属性名')
  • 设置自定义属性:setAttribute('属性名', '属性值')
  • 删除自定义属性:removeAttribute('属性名')

data-自定义属性:

传统的自定义属性没有专门的定义规则,开发者随意定值,不够规范,所以在html5中推出来了专门的data-自定义属性 在标签上一律以data-开头

在DOM对象上一律以dataset对象方式获取


正则表达式

正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象

正则表达式在 JavaScript中的使用场景:

  • 例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)
  • 比如用户名: /^[a-z0-9_-]{3,16}$/
  • 过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。

语法

使用

  1. 定义规则
  2. 查找

语法let 变量名=/表达式/

  • / / 是正则表达式字面量,比如 :let reg=/abc/

判断

test() 方法 用来查看正则表达式与指定的字符串是否匹配 ,返回 false 或 true

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let str = 'hello ,world'
let reg = /hello/
console.log(reg.test(str))  //true

exec() 方法 在一个指定字符串中执行一个搜索匹配

如果匹配成功,exec() 方法返回一个数组,否则返回null

元字符

是一些具有特殊含义的字符,可以极大提高了灵活性和强大的匹配功能。

  • 比如,规定用户只能输入英文26个英文字母,普通字符的话 abcdefghijklm….. 但是换成元字符写法: [a-z]

方便记忆和学习,众多的元字符进行了分类:

边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)

正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

注意:如果 ^$在一起,表示必须是精确匹配。

量词 (表示重复次数)

量词用来 设定某个模式出现的次数

注意: 逗号左右两侧千万不要出现空格

字符类 (比如 \d 表示 0~9)

  • - 连字符 使用连字符 - 表示一个范围
  • 比如:
    1. [a-z] 表示 a 到 z 26个英文字母都可以
    2. [a-zA-Z] 表示大小写都可以
    3. [0-9] 表示 0~9 的数字都可以
  • [ ] 里面加上 ^ 取反符号 比如: [^a-z] 匹配除了小写字母以外的字符 注意要写到中括号里面
  • . 匹配除换行符之外的任何单个字符
  • 预定义:指的是某些常见模式的简写方式

修饰符

修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等

语法:

/表达式/修饰符

i 是单词 ignore 的缩写,正则匹配时字母不区分大小写 g 是单词 global 的缩写,匹配所有满足正则表达式的结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log(/a/i.test('a'))  //true
console.log(/a/i.test('A'))  //true

替换 replace 替换:(过滤敏感词)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
字符串.replace(/正则表达式/'替换的文本')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端成神之路-WebAPIs03
node.removeChild() 方法从 node节点中删除一个子节点,返回删除的节点。
海仔
2020/12/29
3K0
原生 JS DOM 常用操作大全
页面中所有的内容都为节点,节点使用 node 来表示 DOM 树可以把节点划分为不同的层级关系,常见的是父子兄层级关系
FGGIT
2024/10/15
2730
js 事件笔记
在Web中, 事件在浏览器窗口中被触发,执行事先绑定的事件处理器(也就是事件触发时会运行的代码块),对事件做出响应。 用户在浏览器的任何一个操作都会去触发一个事件,JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。
bamboo
2019/01/29
11.3K0
js 事件笔记
webAPIs02-事件
​ 就是让程序监测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 绑定事件 或者 注册事件。
yuanshuai
2022/08/17
8010
webAPIs01-声明变量、元素、定时器
严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs。
yuanshuai
2022/08/17
8060
webAPIs01-声明变量、元素、定时器
JS快速入门(二)
和 innerHTML 类似,写入内容如果包含 html 标签字符串,会被解析成对应的 html 标签,document.write()根据运行时机,会写入文档不同的位置
HammerZe
2022/03/24
6.7K0
JS快速入门(二)
JavaScript
e.stopPropagation(); // stop 停止 Propagation 传播 下列代码为例,当点击父盒子中的son盒子时,不阻止事件冒泡,会发生弹出三个提示框(son、father和document),阻止事件冒泡后,父亲元素不在冒泡弹出框。只弹出son提示框。
roydonGuo
2022/11/02
1.2K0
JavaScript
webapi(二)- 事件
让浏览器检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应 也称为注册事件
且陶陶
2023/04/12
7680
webapi(二)- 事件
前端成神之路-WebAPIs04
​ BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。
海仔
2020/12/29
1.5K0
WEB API教程
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
张哥编程
2024/12/13
1680
WEB API教程
JavaScript(进阶)
正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则, 也可以将一个字符串中符合规则的内容提取出来。
神葳
2021/01/22
1.5K0
webapi(五)- 事件对象
当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。这一过程被称为事件冒泡
且陶陶
2023/04/12
1.1K0
webapi(五)- 事件对象
「Web编程API」- 03
请注意,本文编写于 2091 天前,最后修改于 174 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.5K0
「Web编程API」- 03
JavaScript进阶内容——DOM详解
JavaScript使我们有能力创建动态页面,而事件就是被JavaScript所侦测到的行为。
秋落雨微凉
2022/10/25
1.5K0
JavaScript进阶内容——DOM详解
前端学习笔记之BOM和DOM
到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。
Jetpropelledsnake21
2019/02/15
1K0
C1 能力认证——Web进阶
C1 能力认证——Web进阶 DOM节点操作-上 名称 描述 getElementById() 获取带有指定id的节点 getElementsByTagName() 获取带有指定标签名的节点集合 querySelector() 获取指定选择器或选择器组匹配的第一个节点 querySelectorAll() 获取指定选择器或选择器组匹配的所有节点集合 除了函数方法,我们还可以使用属性来获取节点信息,下表介绍了一些获取元素节点信息常用的属性。 名称 描述 innerHTML 返回元素内包含的所有HTML
HammerZe
2022/03/24
3.3K0
C1 能力认证——Web进阶
事件高级
eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。
星辰_大海
2020/09/30
1.5K0
2019年初 JS面试必考(概率大)的面试题
javascript 创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用 JSON;但写法有很多种,也能混合使用
acc8226
2022/05/17
1K0
2019年初 JS面试必考(概率大)的面试题
前端成神之路-WebAPIs06
回调函数原理:函数可以作为一个参数。将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数,这个过程就叫做回调。
海仔
2021/01/05
1.4K0
前端成神之路-WebAPIs06
事件
JavaScript与HTML之间的交互式通过事件实现的。 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码。
奋飛
2019/08/15
3.4K0
相关推荐
前端成神之路-WebAPIs03
更多 >
LV.0
Web前端开发
作者相关精选
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验