- 博客(29)
- 收藏
- 关注
原创 在前端中的缓存
http缓存分为强缓存和协商缓存1、浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个css文件,如果浏览器在加载它所在的网页时,这个css文件的缓存配置命中了强缓存,浏览器就直接从缓存中加载这个css,连请求都不会发送到网页所在服务器。2、当强缓存没有命中的时候,浏览器一定会发送一个请求到服务器,通过服务器端依据资源的另外一些http header验证这个资源是否命中协商缓存。......
2022-08-31 19:21:00 436 1
原创 最详细ES6教程_变量的解构赋值
解构不仅可以用于数组,还可以用于对象。let {对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。let {baz } = {上面代码的第一个例子,等号左边的两个变量的次序,与等号右边两个同名属性的次序不一致,但是对取值完全没有影响。第二个例子的变量没有对应的同名属性,导致取不到值,最后等于undefined。如果解构失败,变量的值等于undefined。...
2022-08-31 18:15:53 631
原创 最详细ES6教程_let 和 const 命令
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
2022-08-29 14:45:31 184
原创 react类式组件和三大属性
1.类中的构造器不是必须要写的,要对实例进行一些初始化的操作,如添加指定属性时才写。2.如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的。3.类中所定义的方法,都放在了类的原型对象上,供实例去使用。...
2022-08-26 17:35:33 283
原创 JavaScript的内存管理
像 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。相反,JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让 JavaScript(和其他高级语言)开发者错误的感觉他们可以不关心内存管理。
2022-08-24 17:57:26 83
原创 koa2+mongodb的使用详解
1.1、使用koa-generator快速生成koa服务的脚手架工具1.2、进入项目目录,执行生成命令1.3、运行项目2、目录详解名称解释app.json根入口文件routes>文件定义了localhost:3000/文件名下的路由package.json依赖包文件config数据库配置modulesmongodb数据库返回数据配置utils封装的工具3、使用log4js封装登录日志3.1、使用log4js3.2、log4js
2022-08-20 22:31:45 1210
原创 JavaScript ES6立即执行函数
立即执行函数看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。首先了解函数声明方式//函数声明function test(){consel.log("TEST!");}//函数表达式let test=function(){consel.log("你好!");}//匿名函数function(){
2022-03-01 09:18:23 795
原创 TCP协议传输数据
三次握手第一次握手:客户端发送syn包到服务器,并进入syn_sedn状态,等待服务器确认;SYN=1,ACK=0表示请求连接。X表示本次字节流的初始序号。TCP规定:此时没有数据传输,但是消耗一个序号。第二次握手:服务器接受syn包,必须确认客户的syn(ack=x+1),同时自己也发送一个 syn包(seq=y),即syn+ack包,此时服务器进入syn_recv状态;SYN=1,ACK=1表示同意连接的应答响应。Y表示本次字节流的初始序号。X+1表示希望收到的字节起始序号。第三
2021-12-20 15:55:54 1506 1
原创 数据结构--第四章串、数组和广义表
4.1串的定义串是由多个或者零个字符组成的有限序列。串中字符的数目n称为串的长度。零个字符的串叫空串n=0。串中任意个连续的字符组成的子序列称为该串的子串。包包含子串的串叫主串。串相等长度相等,相应位置的字符也相等。空格串就是由空格组成的字符串。...
2021-11-29 11:43:07 318
原创 背包问题前三类
01背包问题#include<bits/stdc++.h>using namespace std;int w[1005],va[1005],dp[1005];//重量和价值dp遍历数组 int main() { int n,v; cin>>n>>v; for(int i=1;i<=n;i++){ cin>>w[i]>>va[i]; } for(int i=1;i<=n;i++){ for(int j=v;j&g
2021-11-28 21:01:04 354
原创 node.js出现的好处和JavaScript的生态
node.js对前端的好处于是能实现兼容各种浏览器的页面成为了前端工程师的金字招牌,前端职业开始变得炙手可热我所认为的比较合适的做法是用Node.js来解决server端UI层的问题,这样我就可以将这一层从后端的其他部分剥离出来。现在越来越多的公司倾向于采用面向服务(service-oriented)的架构,由后端提供给前端RESTful的接口,这么做是为了更好的做前后端的依赖分离。当后端程序员提供了REST服务之后,现在我们前端程序员可以使用Node.js来处理server端的UI
2021-11-28 11:25:06 463
原创 矩阵乘法java
public int[][] Matrix(int A[][],int B[][]){ int arr[][]=new int[A.length][B[0].length]; if(A[0].length!=B.length){ return null; }else{ for(int i=0;i<A.length;i++) //矩阵c是a与b相乘得到的 for(int j=0;j<B[0].length;j+
2021-09-21 18:25:31 102
原创 vue全家桶
全家桶vue router应用分为多页应用MPA和单页应用SPA单页应用就是包括.html这样的文件 SEO优化多页应用就是单文件开发:1、用户群体是否比较多不建议使用(除非团队大)2、单页面就相当于一个a标签点击切换不同的视图后台管理插件vue-element-admin添加vuerouternpm install vue-router 然后vue add router(记得保存项目)vuex...
2021-08-21 15:17:19 96
原创 Matlab使用学习
基本的1、Matlab大小写要区分2、Matlab变量命名规则和c类似3、注释%%空格4、数据类型也和c差不多矩阵表示a=[1 2 3;4 5 6;7 8 9]空格隔开,分号换行a'表示a的转置a(:)表示把a拉长a=[1 4 7 2 5 8 3 6 9]inv(a)取a矩阵的转置zeros(行,列,维数)得到一个几维的矩阵图像A=1:2:9A=[1,3,5,7,9]B=1:3:9b=[1,4,7]repmat(b,3,1)横着竖着3次横着1次ones(m,n)m行n列
2021-08-14 20:44:29 111
原创 AJAX学习
发送请求报文包括请求行:GET请求类型 /server路径http/1.1http协议版本头:host:值,就是key:value空行体相应报文包括get请求在设置请求方法的函数url后面加+Data.now()去除IE浏览器缓存问题浏览器<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Com.
2021-08-01 19:10:26 84
原创 vue单文件开发
vue学习生命周期2021.7.26组件异步加载ref1、如果给标签添加ref就是获取的真是dom节点。2、如果给子组件添加ref就是获取子组件对象异步更新队列为了方便在加载页面数据变化时获取更新后的DomVue.$nextTick(()=>{});//回调函数对象变更检测Vue不能检测对象的更新和删除//添加**响应式**数据或者属性Vue.set(Object,key,value);//添加响应式数据Object =Object.assign(beforeObject,
2021-08-01 19:09:50 216
原创 vue基础学习记录
第一步引包和插值表达式//2021/7/10<div id="app"> <h1 v-text> {{ number }} </h1> <button v-on:click="handclick"> +1 </button> <div class="all" :class="{active:isActive}" > {{text1}} </div> <b
2021-07-24 17:31:33 153 1
原创 常用正则表达式
常用正则表达式正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。用户名:/1{3,16}$/密码:/2{6,18}$/十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/电子邮箱:/^([a-z0-9_.-]+)@([\da-z.-]+).([a-z.]{2,6})$/URL:/^(https?????/)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?$/IP 地址:/^(??????:25[0
2021-05-20 22:48:26 799
原创 快速排序和归并排序
当全局变量和局部变量重合时采用就近原则。辗转相除法:辗转相除法的基本思路是,对正整数a和b,连续进行求余运算,直到余数为0为止,此时非0的除数就是最大公约数。设r=a mod b表示a除以b的余数,若r≠0,则将b作为新的a,r作为新的b,重复a mod b运算,直到r=0时为止,此时b为所求的最大公约数。例如,50和15的最大公约数的求解过程可表示为:Gcd(50, 15)=Gcd(15, 5)=Gcd(5, 0)=5。...
2021-05-13 20:25:45 137
原创 两大排序方法和二分法查找
变量的生存期运行二进制程序变量放在内存里,变量诞生意味着分配内存空间,变量亡回收内存空间。生存期从变量出生和消亡;动态存储就是调用出现,完成消亡,生存期在作用域:大多数局部变量;静态变量生存期整个程序:全局变量,静态局部变量:在局部变量前面加static int a下次再使用不会重新开辟空间!–static long a=1;a=a+1;下次循环来不会把a变成1–!;两种存储位置也不同。全局变量前面加static就像java一样进行封装;基本排序方法1.冒泡排序思想:每次相邻两个数比较,若升序,则将
2021-04-22 22:09:55 98
原创 指针总结
指针如果存在int a=1,*p=&a;那么这里面&指的是直接取地址符号&a就是取得了存储a这个变量的地址。p=&a指的是把&a取得的地址交给p;而p指的是a的值p才指的是a的地址。函数指针:char (*p)(int a,int b)里面的(*p)(int a,int b)指的是指向一个有两个int 参数的函数char为你指向的函数的返回值类型。对于数组指针的定义:如果存在int arr[10];*arr指的是arr[0]的值arr指的是数组存储第一个值
2021-04-17 18:20:20 206
原创 数学模型的类别
数学模型的类别1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现)4、图论算法(这类算法可以
2021-04-16 13:25:14 137
原创 float和double输入输出的区别
1.对于double类型,输入格式为scanf("%lf %lf", &f, &d);对于float类型,输入格式为scanf("%f %f, &f, &d);2.对于double类型和float类型,输出格式均为printf("%f %f\n", f, d);
2021-04-10 14:35:47 6944 2
原创 前端开发流程
一般的网站建设都分为以下几个流程:网站主题:一个网站必须要有一个明确的主题。搜集材料:明确了网站的主题以后,就要围绕主题开始搜集材料了。要想让网站有血有肉,能够吸引住用户,就要尽量搜集材料,搜集的材料越多,以后制作网站就越容易。规划网站:一个网站设计的成功与否,很大程度上决定于设计者的规划水平,规划网站就像设计师设计大楼一样,图纸设计好了,才能建成一座漂亮的楼房。网站规划包含的内容很多,如网站的结构、栏目的设置、网站的风格、颜色搭配、版面布局、文字图片的运用等,只有在制作网页之前把这些方面都考虑到了
2021-04-01 23:09:35 240 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人