2023/7/5总结

news2024/10/6 22:32:14

JS

BOM

是浏览器对象模型

window对象是一个全局对象,也是JavaScript的顶级对象  所以通过var定义在全局作用域中的变量、函数都会变成window对象的属性和方法

定时器-延时函数

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

延时函数只会执行一次

清除延时函数

let timer = setTimeout(回调函数,等待的毫秒数)

clearTimeout(timer)

JS执行机制

JS语言是单线程,同一个时间只能做一个事情

JS有同步和异步

异步任务 有三种: 普通事件  资源加载  定时器   异步任务相关添加到任务队列(消息队列)中

JS执行时,会先看执行栈里面是否执行完毕,再去执行异步任务

location对象:

location.href='url'   会跳转界面

location保存了URL地址的各个组成部分

  • location.search  属性会获取地址中携带的参数,也就是符号?后面的部分
  • location.hahs 属性会获得#后面的部分
  • location.reload  方法用来刷新界面,传入参数true时代表强制刷新

navigator对象

该对象记录了浏览器自身的相关信息

userAgent  可以检测到浏览器的版本和平台

上面这一段可以检测是电脑端还是移动端,从而进行网页的切换 

history对象

主要管理历史记录,该对象与浏览器地址栏的操作相对应,比如前进、后退、历史记录等

 本地存储

数据存储在用户浏览器当中

设置、读取方便、甚至页面刷新不丢失数据

容量较大,sessionStorage 和 localStorage约5M左右

sessionStorage

关闭浏览器数据就会丢失  ,同一个窗口下数据共享  以键值对的形式存储使用   用法和以下的localStorage一样

localStrorage

作用:可以将数据永久存储在本地,除非手动删除,否则关闭页面还会在

特点:可以多窗口共享数据,以键值对的形式存储使用

存储数据(如果有是改,没有就是新增)

存储下来的数据类型是字符串类型

localStorage.setItem(key,value)  需要加引号

  • 获取数据
  • localStorage.getItem(key)
  • 删除数据
  • localStorage.removeItem(key)
  • 清除数据
  • localStorage.clear()

如果想要存储复杂数据类型 需要将复杂数据类型转换称JSON字符串

语法:JSON.stringifty(复杂数据类型)

拿出来:  JSON.parse(localStorage.getItem(key))

数组中使用map方法

map可以遍历数组处理数据,并且返回新的数组

join方法

小括号为空,则为逗号分隔

正则表达式

在写正则表达式的时候 不是用引号隔开 而是/ / 作为首尾开始和结束

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

 exec() 方法  返回的是一个数组,匹配所有

修饰符

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

字符串.replace(/正则表达式/,替换文本)

replace只能替换一个,如果需要替换所有的,在后面添加修饰符  g  replace会返回一个字符串

 

JavaScript垃圾回收机制

  • 引用计数法

对于对象,如果它没有被引用就会被JS回收

  • 标记清除法

从根部出发定时扫描内存中的对象,如果能从根部到达,都是需要使用的,无法从根部出发到达的是不再使用,会被回收

闭包

闭包=内部函数+外层函数的变量

作用:封装数据,实现数据私有,外部也可以访问函数内部的变量,但是也会引起内存泄漏

变量提升:var声明的变量会被提升到前面,但是只是声明,不作赋值

函数提升:函数可以先使用,再定义

函数参数

  • 动态参数:arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参,只存在于函数当中
  • 剩余参数:...数组名称

区别:...是语法符号,置于最末尾函数形参之前,用于获取多余的实参,...获取到的是一个真数组,arguments是应该伪数组

  • 展开数组:...数组名称
  • 箭头函数,同java的lamba表达式   箭头函数没有arguments动态参数,但是有剩余参数...函数名称

解构赋值

数组解构是将数组快速批量赋值给一系列变量的语法,使用解构可以快速为变量赋值

书写方式:

const [max,min,avg]=[100,60,80],其中max和min、avg都指向了数组里面对应的数字,max、min、avg都可以直接使用

对象也可以解构

需要注意的是,解构必须名称相同,跟属性名称相同。

如果需要改名:这样就可以使用新的变量名称

多级对象解构

arry中一些内置方法

document.querySelectorAll() 得到了一个伪数组  把伪数组转换成真数组:Array.from(伪数组名称)   返回一个真数组

原型链

在JS当中,实列化对象里面的方法会被重复定义,如果需要共用一个方法,就需要在构造函数.prototype.方法名称=function(){}

prototype里面包含了constructor属性,该属性是指向构造函数,实例化的对象会有一个__proto__属性或者[[prototype]]属性,这俩个属性是指向原型对象,__proto__属性的constructor属性又指向了构造函数

JS继承

普通函数没有明确知道调用者的时候,this的值为window,如果加了'use strict'  严格模式,此时没有明确知道,this的值为underfined

 箭头函数不存在this

改变this

  • call()

使用call方法调用函数,并且指定被调用函数中this的值

语法:函数名称.call(指定的被调用函数的this值,参数1……)

  • apply()

使用apply方法是和上面差不多,但是它的参数必须是一个数组

  • bind()

使用bind方法不会调用函数,也能改变函数内部this的指向,返回值是一个函数,但是这个函数的this值是被更改过的

语法和call相似

防抖

单位时间内,频繁触发事件,只执行最后一次  

节流

单位时间内,频繁触发事件,只执行一次

AXIOS学习

axios是基于 Promise 的 ajax 封装库,也是前端目前最流行的 ajax 请求库。ajax是异步网络请求

 查询参数

 常用请求方法

  • GET 获取数据  /默认
  • POST 提交数据
  • PUT 修改数据(全部)
  • DELETE 删除数据
  • PATCH 修改数据(部分)

axios请求配置

  • url:请求的url网址
  • method:请求的方法,GET可以省略
  • data:提交数据

 axios错误处理

后面接catch语句接错即可,并且写上错误的语句,和java极为类似

http请求报文

请求报文的组成

  • 1.请求行:请求方法,url,协议
  • 2.请求头:以键值对的格式携带的附加信息,比如说:Content-Type
  • 3.空行:分隔请求头,空行之后的是发给服务器的资源
  • 4.请求体:发送的资源

http响应状态码

用来表示是否成功完成

  • 1xx  信息
  • 2xx  成功
  • 3xx  重定向消息
  • 4xx  客户端错误
  • 5xx  服务端错误

ajax原理:XMLHttpRequest 对象用于与服务器交互,通过XMLHttpRequest 可以在不刷新页面的情况下请求持定url ,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。XMLHttpRequest在ajax编程中大量使用

 XMLHttpRequest 返回的数据是JSON字符串,axios会自动转换,并且会挂在data属性下面,但是XMLHttpRequest不会。

XMLHttpRequest-查询参数

浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据

主要是在链接?的后面,是一组键值对,以&连接

URLSearchParams对象

可以自动生成我们想要的查询参数

 promise

该对象用于表示一个异步操作最终完成或者失败及其结果值

基本语法

在异步任务里面根据需要调用成功或者失败的结果

async函数和await

async函数是使用async关键字的函数,async函数是AsyncFunction构造函数的实列,并且其中允许使用await关键字。async和await关键字让我们可以用更简洁的方式写成基于Promise的异步行为,而无需刻意地调用promise。

 如果需要捕获错误地信息,可以使用try catch语句包围

下面这个是Promise.all的作用

 axios基地址

作用:提取公共前后缀地址(为了防止以后更改而需要全部更改),配置后axios请求时都会是baseURL+url

token

这是权限的令牌,本质上是一串字符串,作用是判断是否有登录状态,控制访问权限

很多接口,都需要携带token字符串,所以就会出现在请求拦截器停一设置公共的headers选项

 axios响应拦截器:

响应回到then/catch之前,触发的拦截函数,对响应结果统一处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础---String的长度限制

目录 典型回答 常量池限制 运行期限制 典型回答 String有长度限制,编译期和运行期不一样编译期需要用 CONSTANT_Utf8_info 结构用于表示字符串常量的值,而这个结构是有长度限制,他的限制是65535运行期,String的length参数是Int…

Jenkins 配置用户角色和权限

1、配置条件: 1)已安装Jenkins,当前案例使用版本:2.319.3 2)已成功进入Jenkins,并新建用户:dev_java 2、安装插件【系统管理-插件管理-搜索-可选插件】:Role-based Authoriz…

JavaScript 进阶 - 第4天

JavaScript 进阶 - 第4天笔记 文章目录 JavaScript 进阶 - 第4天笔记1 深浅拷贝1.1 浅拷贝1.2 深拷贝(面试)1.2.1 递归实现深拷贝1.2.2 js库lodash里面cloneDeep内部实现了深拷贝1.2.3 JSON序列化 2 异常处理2.1 throw 抛异常2.2 try ... catch 捕获异常…

Linux之Kafka保姆式详细安装教程

下载Kafka 《Kafka官网下载》 注意:下载的是二进制文件,不要下载源码!这里可以采用第三方下载工具加速下载,如:迅雷等 上传到Linux服务器的/data/目录下进行解压 tar -zxvf是解压文件命令,-C表示把解压…

【C++学习笔记】1.6 引用

目录 🍯1.6 引用 🥝1. 引用的概念 🥝2. 引用的特性 1、引用在定义时必须初始化 2、一个变量可以有多个引用 3、引用一旦引用一个实体,再不能引用其他实体 🥝3. 常引用 1、取别名的原则:对原引用的…

数据查询大揭秘:收好几个模式化公式

欢迎来到数据查询大揭秘!今天,我将与大家分享一些宝贵的秘诀和技巧,让你轻松应对数据查询的挑战。准备好了吗?收起你的笔记本和便签纸,因为我即将为你介绍几个模式化公式,让你事半功倍地完成数据查询任务&a…

湖北文理学院工程能力实训开班!

为深化校企合作,产教融合助力新工科建设,提升学生工程实践能力,电巢工程能力实训班按照不同岗位类别,匹配对应的企业岗位任职能力要求对学生开展分级培养,以产业需求为导向,培养创新型、应用型人才。 7月3…

open3D cmake+win10+vs2019编译

已经采用python版open3D实现和验证了功能,但是在C迁移上却遇到了不少问题: 1、可能是与本地的编译器存在差异,在使用open3D git上的winows版本时,存在地址访问冲突和std::bad_alloc等问题。前者在适用IO读写时必现,后者…

【Git】Windows如何运行.sh脚本文件

在Windows系统中运行.sh脚本需要借助第三方工具,比如Git Bash、Cygwin或WSL(Windows Subsystem for Linux)等。 以下是使用Git Bash运行.sh脚本的步骤: 安装Git Bash:从Git官方网站(https://git-scm.com/…

【Ubuntu学习MySQL——MySQL基本操作命令】

1.创建数据库 2.删除数据库 3.选择数据库 4. 创建数据表 5.删除数据表 6.往数据表中插入数据 7.从数据表中查询数据 SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]""" 查询语句中你可以使用一个或者多个表&#xff0c…

SpringMVC源码-DispatcherServlet

一、SpringMVC请求处理流程 DispatcherServlet:DispatcherServlet是SpringMVC中的前端控制器,负责接收request并将request转发给对应的处理组件。HandlerMapping:HanlerMapping是SpringMVC中完成url到Controller映射的组件。Handler&#xff…

智能汽车时代,产业如何“软硬兼施”

摘要: 智能汽车时代,以车用芯片、基础软件为代表的卡脖子关键技术,牵动着国内整个汽车供应链的安全。“软硬兼施”正成为从企业到汽车全行业的共同重大行动。 汽车产业链、供应链安全问题近两年已经引起全行业前所未有的关注。进入智能汽车时…

互联网医院资质申请难吗|互联网医院+医药机构

互联网医院牌照申请的具体流程可能因国家和地区的法规和政策而有所不同。下面是一个一般性的流程介绍:   准备材料:根据当地的法规和政策要求,准备申请互联网医院牌照所需要的相关材料。这些材料可能包括但不限于:公司注册证明、…

【已解决】cc1plus: fatal error: cuda_runtime.h: No such file or directory

文章目录 前因解决方案后果 前因 我是在conda环境下创建stable diffusion的虚拟环境,虚拟环境下pytorch、cuda和cudnn的版本如下所示。服务器上的CUDA版本是11.2,GPU是P40,内存22G。 import torch >>> torch.__version__ 1.12.0 &…

JavaEE语法第二章之多线程(初阶四)

一、wait 和 notify 由于线程之间是抢占式执行的, 因此线程之间执行的先后顺序难以预知.但是实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序. 球场上的每个运动员都是独立的 "执行流" , 可以认为是一个 "线程". 而完成一个具体的进攻得分…

【数据结构课程设计系列】农夫过河问题操作演示

农夫过河 1、题目要求 1.1设计目的 掌握广度优先搜索策略,并用队列求解农夫过河问题。 1.2设计内容 一个农夫带着一只狼、一只羊和一棵白菜,身处和的南岸,他要把这些东西全部运到北岸,遗憾的是他只有一只小船,小船只能…

从小白到大神之路之学习运维第53天--------tomcat-web应用——————供开发的商城框架

第三阶段基础 时 间:2023年7月5日 参加人:全班人员 内 容: Tomcat应用服务 WEB服务 目录 实验环境:(四台服务器) 安装tomcat服务: NginxTomcat 负载均衡集群部署: 安装ng…

【JavaWeb基础】分层解耦

一、知识点整理 1、IOC与DI入门 1)控制反转: Inversion 0f Control,简称I0C。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。 2)依赖注入: Dependency lnjection,简称DI。容器为应用程序提供运…

vue 访问第三方 跨域, 配置vue.config.js

目录 0 config 文件被修改 一个要重启vscode 配置文件才会生效 1 第一种 (有两种写法) 1.1 配置vue.config.js 1.2 axios 使用 1.3 终端打印 2 第二种方法 --> 错误 --> 没有运行成功 2.1 配置vue.config.js --> 就是api 不被设置成 替换为 / 2.2 axios 使用…

【Linux初阶】理解一切皆文件 文件属性结构体底层 引用记数

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:理解一切皆文件,文件属性结构体底层理解(struct file、引用记数) &#x1…