自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 html页面结构详解

<!-- 初始化结构 --><!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"&gt.

2021-11-30 09:18:40 313

原创 CDN解析

cdn:内容分发网络将源站的内容分发至全国所有的节点,从而缩短用户请求信息的延时,提高用户访问网站的响应速度和网站可用性的技术,它能有效解决网络带宽小,用户访问量大,网点分布不均匀的问题。原理给某个域名开通了CDN服务,会给该域名的DNS解析设置的后台添加一条CDN专用的解析记录。 用户点击网站页面上的url,经过本地DNS系统中的CDN专用解析记录,会将解析权交给CDN专用的DNS服务器,该服务器会给浏览器返回CDN负载均衡服务器的ip地址 浏览器访问负载均衡服务器,会得到一台CDN网络中

2021-07-24 15:09:30 644

原创 cookie及cookie跨域

cookie概念cookie存储在计算机文本中的信息,以键值对的方式存储。http本身是无状态的,客户端向浏览器发送请求,如果服务端需要记录该用户的状态就向用户办法一个cookie,客户端会把cookie存储起来,之后每次请求该网站时就会将cookie一起发送给服务器,服务器以此辨别用户。cookie:键值对、过期时间、产生cookie的域名、路径、安全过期时间expires:maxAge为正数时,在这个事件内有效。为负数时关闭浏览器就消失、为0时立即删除域domain:cookie所在

2021-07-24 11:45:53 393

原创 JavaScript事件循环

js中的事件循环因为JavaScript是单线程的,同一事件只能执行一种方法,所以会将程序中的方法加入到执行栈中按照后进先出的顺序依次执行,当遇见异步任务时不会被阻塞,而是将任务放入事件队列中,继续执行执行栈中的同步代码,等当前执行栈中的所有任务都执行完毕则查找事件队列中的任务,并把任务的回调函数放入执行栈中,执行其中的同步代码,如此反复形成的循环被称为事件循环。node.jsnode.js特点事件驱动从上向下执行代码,当遇到需要回调的地方就加入到事件队列中,主线程运行完就去执行事件队列

2021-07-22 19:10:27 150 1

原创 js最新基本数据类型-BigInt

为什么会有BigIntBigInt是比number数据类型支持的范围更大的整数值因为js所有的数字都是用双精度64位浮点格式表示,无法精确地表示的更大的数将采四舍五入怎么创建BigInt在整数末尾加n 10n 调用BigInt(“12344123242342342”)方法除了一元运算符+之外所有算数运算符都可以用于BigIntBigInt和number不能进行隐式地转换,因为会有精度丢失的问题...

2021-07-22 16:13:59 381

转载 js的渲染进程

参考:https://blog.csdn.net/qq_39669807/article/details/89388014浏览器的进程boswer进程:主进程,只有一个,负责页面的创建销毁,前进后退,网络资源的管理下载等 GPU进程:硬件加速图形绘制 渲染进程:内部是多线程的,每个页面一个渲染进程。用于页面的解析、渲染、执行脚本等 第三方插件进程:每个插件对应一个进程为什么多进程防止单个面崩溃而影响浏览器 多进程充分利用多核优势 提高浏览器的稳定性渲染进程包含多个线程...

2021-07-22 15:32:39 512

转载 js引擎的执行过程

看到一篇文章,写的很好,我自己又打了一遍加深记忆:文章链接:https://blog.csdn.net/qq_39669807/article/details/89399276js是单线程的,一个页面是由一个线程在执行代码js是异步执行的,通过事件循环的方式实现js为什么是单线程的为了防止两个线程操作同一个DOM 为了利用多核CPU的能力,html5提出了webWork标准,允许JavaScript创建多个线程,但是子线程完全受主线程的控制,且不得操作DOM js是单线程,但是浏览器

2021-07-22 14:55:07 157

原创 V8和node.js

V8概述机器码:指挥计算机应做的操作和操作数地址的一组二进制数字节码:一种包含执行程序、由数据对组成的二进制文件。是一种中间码,比机器码更加抽象。v8功能:JavaScript源码---》抽象语法树----》本地机器码是一个JavaScript引擎,直接把JavaScript直译为机器码然后运行---(中间需要解决编译优化、内存管理、垃圾回收)类似于java的jvmNode.jsnode.js=V8+内置基本模块,相当于java中的JRE=JVM+java标准库node就是带

2021-07-22 10:55:51 868 1

原创 sort(()=>{return Math.random()-0.5)}乱序数组不准确

参考:https://blog.csdn.net/weixin_30270561/article/details/96445876https://blog.csdn.net/JackieDYH/article/details/114178346chrome浏览器对于数组长度为10以内的使用插入排序,反之则为快速排序和插入排序的组合,所以使用sort(()=>{return Math.random()-0.5)}使得每个元素更大可能出现在它原本位置的附近快速排序:https://www.cn

2021-07-22 10:03:37 1014

原创 浏览器多线程,js单线程

https://blog.csdn.net/wodebokecsdn/article/details/83991512

2021-07-11 20:00:05 84

原创 ===运算符

==会自动转换类型后再比较===则不会转换直接进行比较const a='123'const b=new String('123')const c=String(123)// String() 函数,把对象的值转换为字符串console.log(a===c)console.log(a===b)console.log(b===c)console.log(typeof a)console.log(typeof c)console.log(typeof b)index.js:5

2021-07-11 19:41:13 116

原创 堆内存和栈内存

栈内存:自动分配相对固定大小的内存空间,并由系统自动释放,便于管理堆内存:动态分配,不会自动释放,方便开辟内存空间

2021-07-11 19:30:23 84

原创 JavaScript数据类型

JavaScript有六种数据类型number string boolean null undefined object如何对类型进行判断typeof null返回object instanceof 用来检测自定义对象 Object.prototype.toString.apply('123') 检测基本类型和内置对象...

2021-07-11 19:25:39 79

原创 媒体查询media

原文:https://www.cnblogs.com/nyw1983/p/11409219.html媒体查询的用途:可以根据不同的设备为其实现不同的样式 媒体查询可以检测很多东西:视窗的宽度和高度,设备的宽度和高度,旋转方向,分辨率大小媒体查询的用法:1.直接写在css样式中@mediamediatypeand/not/only (media feature){ CSS-Code }<!DOCTYPE html><html lang="en"&gt...

2021-07-11 18:59:53 162

原创 任务的执行顺序

await阻塞运行:https://blog.csdn.net/weixin_34247299/article/details/88119381原文:https://blog.csdn.net/yun_hou/article/details/88697954JavaScript的循环机制JavaScript有宏任务和微任务。宏任务:script、setTimeOut、setInterval 微任务:peomise.then 事务的执行顺序是:先执行宏任务,再执行微任务。此外,任务还有

2021-07-11 11:53:40 516

原创 window.name+iframe实现跨域

window.name:只要在一个window下,无论url怎么变化,只要设置好了window.name,那么后续就一直都不会改变,同理,在iframe中,即使url在变化,iframe中的window.name也是一个固定的值window.name 传输技术的基本原理:a页面向不同域的b页面请求数据:a页面创建一个iframe,创建的同时iframe也会创建一个window对象,iframe向b页面获取数据之后存储在window.name中,再将iframe的src修改到a页面的域名下,这时i

2021-07-11 11:01:23 599

原创 const的值可不可以被更改

当const定义的常量是基本数据类型的时候不可以被更改当const定义的常量是引用数据类型的时候,其值可以被更改。const定义的常量实际上是栈内存地址中的保存的值,const常量的值不可以被更改就是栈内存中保存的数据不可以被更改。基本数据类型直接存储在栈内存中,所以不可以更改。而引用数据在栈内存中存储的是一个指针,真正的数据存储在指针指向的堆内存中,不可改变的是指针,真正的数据是可以更改的。参考:https://blog.csdn.net/qq_41797950/article/detai

2021-07-11 10:42:30 4953

原创 JSONP

https://www.jianshu.com/p/f880878c1398https://blog.csdn.net/liuxiao723846/article/details/112649466?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

2021-07-11 08:25:52 92

原创 BFC理解

https://blog.csdn.net/sinat_36422236/article/details/88763187https://blog.csdn.net/ws9029/article/details/114181116?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_sour

2021-07-10 14:44:43 115

转载 粘性定位position:sticky

https://blog.csdn.net/qq_35585701/article/details/81040901

2021-07-09 22:35:57 144

原创 水平垂直居中

方法一:position+margin<!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"&gt

2021-07-09 22:22:27 86

原创 三数之和-

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。

2021-06-11 18:07:16 94

原创 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2021-06-07 11:45:02 162

原创 罗马数字转整数

罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常...

2021-06-07 11:02:40 125

原创 整数转罗马数字

罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。...

2021-06-06 21:04:03 108

原创 盛水最多的容器

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。来源:力扣(Leet...

2021-06-06 20:38:28 63

原创 正则表达式匹配

给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/regular-expression-matching著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2021-06-06 20:03:34 192

原创 整数反转-JavaScript

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。JavaScript位运算,

2021-06-02 21:03:39 152

原创 数组元素z型排序

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。...

2021-06-02 20:58:43 587

原创 最长回文数

给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。

2021-06-02 20:43:11 405

原创 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

2021-06-02 20:38:32 112

原创 两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。解题思路:可以使用两层循环暴力解答,但是事件复杂度是n^2采用map集合以空间换时间,将遍历过的数全都存起来,当与之后计算需要的target-nums[i]相等时就可以返回了var twoSum = function(nums, target) { ...

2021-06-02 09:15:39 89

原创 git

####1.gitadd之后没有commit就进行了版本穿梭,于是add的没了解决办法:gitfsck--lost-found,之后在.git/lost-found/other中找到2.新建分支修改内容后返回主分支发现内容也变了解决办法:其实主分支内容并没有改变,因为新建分支的修改没有提交,只需返回新建分支后提交,返回返回主分支就可以发现并没有更改。####gitgit是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型到大型地各...

2021-05-18 18:47:45 80

原创 10-react-redux

概念redux是一个专门做状态管理的js库(不是react插件库)作用:集中式管理react应用中多个组件共享的状态适用情况某个组件的状态需要上其他组件可以随时拿到 一个组件要改变另一个组件的状态 能不用就不用(个人觉得消息订阅发布就挺好的)原理图Action Creators主要作用是封装对象,将组件要做的动作与数据封装为一个对象交给store处理type:标识属性,值为字符串且唯一 标识组件要做什么data:数值属性,值类型任意 ...

2021-05-14 21:23:51 91

原创 9-react-路由

SPA:单页面web应用(single page web application)整个应用只有一个完整的页面 点击页面中的链接不会刷新页面,只会做页面的局部刷新 数据通过Ajax请求获取,并在前端异步展现路由什么是路由 一个路由 就是一个映射关系(key:value) key为路径,value可能是function或component 路由的分类1.后端路由value是function,用来处理客户端提交的请求 注册路由:router.get(path,func.

2021-05-13 22:16:10 155

原创 8-react-组件通信

参考:https://blog.csdn.net/l1336037686/article/details/85505473组件之间通信的方式:1.props公共的数据放在父组件上,特有的数据放在自己组件内部。通过props可以传递一般数据和函数数据,只能一层层传递一般数据->父组件传递给子组件,子组件读取函数数据->父组件传递给子组件,子组件调用函数如下边的代码段,由于数据在父组件中,如果子组件需要使用到这些数据,就要父组件在标签中传递过去,如果子组件要对数据进行操作

2021-05-13 16:41:55 88

原创 7-react-生命周期钩子(新)

官方文档讲解生命周期:https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/生命周期钩子生命周期回调函数<=>生命周期钩子函数<=>生命周期函数<=>生命周期钩子由Windows在某个时机调用的函数,我们可以重写钩子中的方法,以达到在这个时机做什么事情的目的,我们自己是无法调用这些钩子的常用的钩子constructor(props)构造器钩子,有以下两...

2021-05-13 15:22:51 139

原创 6-react-Diffing算法

如下图所示,state状态一直在改变,每次改变都会调用render进行重绘,可是发现每次重绘我们输入到input中的文字并没有改变,说明render只重绘了span中的显示时间的部分,其余没有发生改变的元素并没有进行重绘。这就是react的diffing算法。class Time extends React.Component { state = {date: new Date()} componentDidMount () { setInterval(() => { this.

2021-05-13 12:02:53 156

原创 5-react-受控组件非受控组件

非受控组件现取现用,不会存储到state中//创建组件class Login extends React.Component{ handleSubmit = (event)=>{ event.preventDefault() //阻止表单提交 const {username,password} = this alert(`你输入的用户名是:${username.value},你输入的密码是:${password.value}`) } render(){ return(

2021-05-13 11:32:37 176

原创 4-react-三大属性

statestate用来表示组件的状态,当状态发生改变时,调用render重新渲染页面改变状态使用setState({name:value}),不可直接改变状态//1.创建组件class Weather extends React.Component{ //初始化状态 state = {isHot:false,wind:'微风'} render(){ const {isHot,wind} = this.state return <h1 onClick={this.cha

2021-05-13 11:20:50 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除