自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WiFi 6的核心技术

与Wi-Fi 6前几代Wi-Fi技术相比,在物理帧、调制、编码、多用户并发等多方面进行了技术改进和优化。Wi-Fi 6的关注点不只是单设备的峰值速率,Wi-Fi 6更关注的是应用、用户体验和整个无线环境的优化。Wi-Fi 6协议的设计目标和关注点,更贴合于现阶段多Wi-Fi终端、多应用普及的场景。现阶段各类终端和应用繁多,如视频类应用、即时通讯类应用等,因此无线场景中多并发、短报文的情况越来越多,早期的Wi-Fi协议应对这种情景并无技术优势,而Wi-Fi 6针对这些场景做了大量的改进和优化,能大幅度的提.

2020-10-09 21:35:45 6909 3

原创 JS算法题

除此之外,还有层序遍历,这是一种按照树的每一层从左到右访问的方法。在现代 JavaScript 中,方法 1 是最简单和最常用的方式,但是如果您处理的数组非常大,或者您希望有更好的性能表现,可能需要使用循环(方法 4),因为它避免了创建额外的数组副本和大量的函数调用。如果在处理完所有的节点之后,仍然有一个进位,我们将其作为一个新的节点添加到结果链表的末尾。在 JavaScript 中,虽然没有内置的堆数据结构,但可以使用数组模拟一个最小堆,这种方法的时间复杂度是 O(n log k),适合处理大数据集。

2024-04-21 20:20:30 985

原创 计算机网络

HTTPS(全称 HyperText Transfer Protocol Secure)是HTTP的安全版本,它在HTTP的基础上通过使用SSL/TLS协议提供数据加密、数据完整性和认证。这种协议主要用于互联网上的安全通信,确保数据在传输过程中不被拦截或篡改。对于任何涉及敏感数据交换的Web应用程序,强烈推荐使用HTTPS。HTTPS不仅保护数据免受中间人攻击,还有助于建立用户对网站的信任。随着网络安全威胁的增加,使用HTTPS已成为现代Web开发的标准实践。短轮询:实时性较差,网络及服务器负担较重。

2024-04-20 18:41:11 1290

原创 浏览器原理之浏览器机制

执行栈(调用栈),是一个按照先进后出的方式操作的栈结构,用于存储在代码执行期间创建的所有执行上下文。Node.js的事件循环是为了支持高效的异步 I/O 操作而设计的,包含多个阶段和专门的队列。浏览器的事件循环主要是为了处理用户界面的响应,有一个相对简单的模型,主要区分宏任务和微任务。在 Node.js 中,总是在当前执行栈清空后和任何其他异步事件之前执行,这使其成为触发紧急或必要任务的一种方式。

2024-04-20 17:33:07 535

原创 浏览器原理之浏览器同源策略

同源策略(Same-Origin Policy, SOP)是一种重要的安全策略,用于Web浏览器中。它限制了一个源(origin)的文档或脚本如何与另一个源的资源进行交互。这有助于防止恶意文档窃取另一个文档的数据,提高Web应用的安全性。一个源定义为协议、端口(如果有指定)和主机的组合。只有当两个URL的协议、端口(如果指定了的话)和主机都相同时,它们才属于同一个源。

2024-04-20 17:19:36 412

原创 浏览器原理之本地存储

这些存储技术各有特点和适用场景,了解它们的差异和限制对于设计有效的前端存储策略非常重要。

2024-04-20 17:14:57 376

原创 浏览器原理之浏览器渲染原理

预解析是浏览器优化技术,浏览器会在解析HTML文档的同时,用一个预解析器查找需要下载的资源(如脚本、样式表、图像文件等),并提前开始下载这些资源。这个过程不会执行资源,只是提前获取资源,减少了页面加载时间。

2024-04-20 17:05:59 318

原创 浏览器原理之浏览器组成

对于Web开发人员来说,了解浏览器的内部结构和工作原理是至关重要的。这可以帮助开发者更好地理解应用程序的行为,以及如何优化它们以提供最佳的用户体验。以下是关于浏览器组成、浏览器内核的解释以及常见浏览器内核的比较和它们的应用。

2024-04-20 16:59:51 354

原创 浏览器原理 之 浏览器缓存

浏览器缓存是一种存储网页资源(如HTML页面、图片、JavaScript文件和样式表)的技术,用于减少带宽使用、降低服务器负载、提高页面加载速度。浏览器缓存可以根据HTTP头信息中的缓存指令来决定哪些资源应该被缓存、缓存多久以及何时重新获取资源。每种刷新方法都用于不同的场景,理解它们的区别可以帮助开发者和用户更有效地控制资源的加载和缓存行为。

2024-04-20 16:53:27 411

原创 浏览器原理 之 进程与线程

僵尸进程不消耗系统资源,如CPU和内存,但它们占据了一个进程表的位置,如果僵尸进程数量过多,可能会导致系统无法创建新进程。进程之间相互隔离,一个进程无法直接访问另一个进程的内存空间。如果父进程在子进程之前退出或者由于某种原因未能调用wait(),则必须由init进程(在大多数UNIX系统中是进程号为1的进程)负责“收养”这些子进程并对它们调用wait(),从而确保它们的资源得到释放。孤儿进程不是系统上的负担,因为它们仍然由一个父进程(即init进程)管理,它们会像正常进程一样继续运行,在结束时释放资源。

2024-04-20 16:45:07 615

原创 浏览器原理 之 浏览器安全

XSS 攻击,即跨站脚本攻击(Cross-Site Scripting),是一种常见的网络安全漏洞,它允许攻击者将恶意脚本注入到其他用户浏览的正常网页中。这些恶意脚本通常以 JavaScript 形式出现,并在用户的浏览器中执行。执行的结果可以是窃取用户的cookies、会话令牌,或者对用户的账户进行其他恶意操作。存储型 XSS:恶意脚本被永久存储在目标服务器上,例如数据库、消息论坛、访客留言等,当其他用户请求数据时脚本被发送到用户的浏览器执行。反射型 XSS。

2024-04-20 16:11:19 979 1

原创 (虚拟DOM)前端八股文修炼Day10

React 的 Diff 算法是 React 虚拟 DOM 技术中的核心机制,它用于高效地对比前后两次虚拟 DOM 树的差异,并将这些差异应用到真实的 DOM 上,以实现快速的 UI 更新。的主要作用是提高性能,通过为列表中的每个元素分配一个稳定且独特的标识符,帮助React高效地执行虚拟DOM的diff算法,只更新变化的部分,维护状态的一致性,并减少不必要的DOM操作。总的来说,React 的 Diff 算法通过智能的对比策略和假设,减少了不必要的 DOM 更新,从而提高了应用的性能和响应速度。

2024-04-08 23:27:46 1019

原创 (React Hooks)前端八股文修炼Day9

使用数组而不是对象返回useState的值,使得状态钩子的使用更加灵活、简单和直观。它鼓励将状态分解为较小的、独立的片段,这有助于组件的维护和避免不必要的复杂性。同时,它也与React的函数式编程哲学保持一致。不能在普通的 JavaScript 函数中调用 Hooks。Hooks 是特定于 React 的,它们依靠 React 的上下文来正确工作。如果你想在多个组件之间重用有状态逻辑,可以把它放到自定义 Hook 中。合理封装和复用逻辑。

2024-04-07 21:24:18 533

原创 (React生命周期)前端八股文修炼Day8

总的来说,Hooks提供了一种更灵活的方式来复用逻辑、管理状态、以及与组件的生命周期等同步,与类组件的生命周期方法相比,Hooks使得组件逻辑更容易组织和理解,同时也更容易测试。主要的变更发生在React 16.3版本引入的新的生命周期方法,并且在React 17中继续保持。React团队鼓励开发者使用新的生命周期方法替代旧的将要被弃用的方法,并在可能的情况下,利用函数组件与Hooks,这些都是在React 16.8版本中引入的概念,以支持使用更现代的、更简洁的方式来编写组件与管理状态。

2024-04-07 21:10:54 1069

原创 (React数据管理)前端八股文修炼Day7

调用setState:当setState被调用时,而不是立即更新组件的状态和DOM,React会将状态更新排入一个内部队列中。异步处理:React将继续执行当前的代码块,这可能包括更多的setState调用。这些调用也会被添加到队列中。React并不会立即处理这个队列。事件循环结束:一旦JavaScript调用栈清空,比如事件处理器执行完成后,React将开始处理批量更新。这通常在浏览器准备重新绘制之前的微任务阶段发生。状态合并:React遍历队列,将所有的状态更新合并。对于每个组件,这意味着合并多个。

2024-04-01 21:18:57 1151

原创 (React组件基础)前端八股文修炼Day6

总之,无论是类组件还是函数组件,选择哪一个取决于特定的场景和开发者的个人偏好。了解两者的区别可以帮助我们更好地决定在特定的情况下使用哪种类型的组件。在React中,refs是一种可以存储对DOM节点或React元素实例的直接引用的机制。通俗地说,当你需要在React的数据流(props和state)之外直接访问一个组件的DOM元素时,你会使用refs。最后,你可以总结:“总的来说,Reactrefs提供了一个逃生舱,允许我们在必要时直接操作DOM。

2024-03-31 21:10:55 1088

原创 (原型与原型链)前端八股文修炼Day5

原型链是 JavaScript 中实现对象继承的关键机制之一,它是一种对象之间的关系,通过这种关系,一个对象可以继承另一个对象的属性和方法。

2024-03-27 21:02:48 1178

原创 (执行上下文作用域链)前端八股文修炼Day4

开始时给出一个简单而清晰的定义,例如:“作用域是指变量和函数的可访问性范围,而作用域链是用来解析变量位置的机制”。

2024-03-26 22:48:52 1101

原创 (异步编程)前端八股文修炼Day3

在 JavaScript 中,异步编程是处理异步操作的重要部分,常见的异步编程实现方式有以下几种:Promise:Promise 是 ES6 引入的用于处理异步操作的对象,可以更清晰地处理异步操作成功或失败的情况。例如:Async/Await:Async/Await 是建立在 Promise 基础上的异步编程方式,使用 声明异步函数, 用于等待 Promise 对象的解决。例如:事件监听(Event Emitter):通过事件监听器来处理异步操作的完成或状态改变。Node.js 中的

2024-03-25 22:40:14 720

原创 (ES6)前端八股文修炼Day2

ES6 快问快答

2024-03-24 20:11:49 1248

原创 (数据类型)前端八股文修炼Day1

JavaScript数据类型快问快答

2024-03-23 19:46:59 715

转载 无线帧聚合MPDU和MSDU

802.11n提供两种帧聚合的方法:MAC服务数据单元(MSDU—MAC Service Data Unit)和信息协议数据单元(MPDU—Message Procotol Date Unit)转自:https://www.pianshen.com/article/23011433075/

2020-12-28 12:06:49 772

原创 字符串转驼峰方法

基于数组的方法function cssStyle2DomStyle(sName) { let name=sName.split("-"); for(let i=1;i<name.length;i++){ name[i]=name[i].charAt(0).toUpperCase()+name[i].substring(1); } return name.join(''); } let str="font-size-css"; console.log(c.

2020-09-09 19:55:29 752 1

原创 map,filter, for...of... 的区别

对于过滤数组而言,map返回的是布尔值,filter则是返回满足条件的值。想改变数组的时候用map,想对数组进行过滤用filter,累加数组用reduce

2020-09-04 11:35:18 481

原创 transition ,animation学习

.tra { margin: 20px auto; width: 100px; height: 200px; background-color: #99CCFF; transition: all 1s; color: #AA00FF; font-size: 30px; } /* .tra:hover{ transform: translateX(100px); } */ .trans { transfor

2020-08-14 19:14:13 126

原创 网页布局时,三张背景图片出现白线的解决办法

项目开发中发现两个背景图片之间有一条白线如如下图所示。在分析代码之后发现白线是由设置了水平居中margin:0 auto造成:所以我们可以使用负margin技术设置margin-top:-1px解决这个问题。.center { height: 855px; width: 1920px; background: url('https://static-ftcms.jd.com/p/files/5.jpg') center no

2020-08-06 10:51:01 3515

原创 input输入框短信验证码处理

项目开发中实现获取手机验证码的功能,短信验证码的特点1.只有六位 2.只能为数组。第一种方法,我们可以用正则+maxlength的方式去实现 <input placeholder="请输入验证码" v-model="code" maxlength="6" onkeyup="value=value.replace(/[

2020-08-05 10:45:41 2609

原创 扩展运算符(三点运算)运算是不是深拷贝呢?

今天我们学习一下ES6中最好用的 …三点运算符是不是深拷贝。let obj = { person:{name:"dxy",age:22}, age: 18 }let obj3 = { ...obj } console.log(obj3); obj3.person.age=30; obj3.age=10; console.log(obj);//不是深拷贝 如上图所示,有多层对象时,三点运算符就无法实现深拷贝了。...

2020-07-23 10:50:04 1953

原创 前端中对含有数字字符串的处理及展示

项目开发中可能会遇到这个问题,当你从后端拿到一个字符串例如:“12个月”,数字和字符在页面中显示不同的样式。如下图所示:那么如何对字符串进行处理呢?首先用parseInt()拿出数字,需要考虑到不含数字字符串的处理,也就是非有效数字NaN的处理;使用正则表达式匹配其中的字符。代码如下: let str="12个月"; let str1=parseInt(str); if(!NaN(str1)){ str1=parseInt(str); }

2020-07-08 14:47:11 929

原创 前端开发中静态文本发生乱码,如何解决呢??

在前端项目开发的过程中,在css中content属性设置文本,浏览器中偶现乱码现象,查了很多博文,尝试使用<meta http-equiv="content-type" content="text/html; charset=UTF-8" />却不能很好的解决这个问题。然后我采用了 Unicode 将中文转成Unicode很好的解决了这个问题。.con::before { content: "\67e5\770b\8be6\60c5"; //查看详情 margin-ri.

2020-07-07 09:52:11 376

原创 前端面试常考数组去重方法

数组的几种去重方法站在巨人的肩膀上,利用Set集合的属性实现去重function unique (arr) { return Array.from(new Set(arr)) } console.log(Array.from(new Set([1,4,5,5])));通过定义新数组来实现数组去重,可通过数组的includes()或者indexof方法判断数值是否属于新数组let a=[1,2,2,3,3,4];function red(arr){ let arr1=

2020-07-03 18:00:21 345

原创 javascript函数中的this指向

1. this是什么?一个关键字, 一个内置的引用变量在函数中都可以直接使用thisthis代表调用函数的当前对象在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)的2. 如何确定this的值?test()obj.test()new test()test.call(obj)*本质上任何函数在执行时都是通过某个对象调用的function Person(color) { console.log(this) this.color = color;

2020-06-28 17:49:08 133

原创 网页布局中margin-top失效,解决办法

项目开发中,想要要实现如下布局,但是我们发现直接设置子元素的margin-top属性,其会作用于父元素,垂直方向的margin值通常会叠加。 <div class="father"> <div class="son"></div> </div>.father { box-sizing: border-box; width: 300px; height: 300px; margin:

2020-06-19 16:12:09 686

原创 用JSX语法糖需要渲染出一组数据,实现和v-for相同的效果

在项目开发中,通常会用到jsx语法糖,但是vue中的指令在其中是失效的。想要实现一下效果图:在项目开发中数组的map方法超高频,我们的解决方案也是用到了map方法map方法:https://blog.csdn.net/LzzMandy/article/details/104524798 formatter: data => { return ( <ul>

2020-06-18 20:27:18 728 1

原创 :class 和 :style 的使用技巧

总结在项目开发中三目运算的推荐使用方法:class:class="'true'?'dot':'hidden'":class="[三元表达式?'classA' :'classB']" style<:style="{'属性名':三元表达式}"> <:style="{'color': 三元表达式 ? '#FF5757':'#757575'}"><el-button :style="{'color':status === true ? '#FF5757':'#

2020-06-09 17:21:09 463

原创 前端数据交互中JS中find,include方法的使用场景

前端开发最重要的事情之一是处理后台展示的数据,很多时候我们要对拿到的数据进行一些处理才能符合页面的显示规则,今天就和大家分享一下用find和include来筛选符合条件的数据。find()没有改变原始数组的值,讲找到的第一个元素返回场景:我们从后台拿到一组数组对象,如:`[{name:“dxy”,age:18},{name:“zhang”,age:28}]我们需要对某条数据进行一些操作(状态判断等等),前端可能通过点击事件拿到操作的数据对象,这时我们就需要用find方法找到点击事件操作的对象属

2020-06-03 10:02:38 4153

原创 ul列表li标签前加带有颜色的圆点技巧

项目开发中,ul列表布局时li标签带有样式圆点??应该如何去处理呢?一般情况下,默认的li标签前是有黑色小圆点,但是其颜色无法改变。在布局初始化的时候我们会去掉默认样式。所以,今天就为大家讲解一个小技巧来解决这个问题。代码如下:利用伪标签,使用css中的圆角border-radius: 50%;来实现 li:before { content: ""; width: 6px; height: 6px; disp

2020-06-01 09:54:59 15159

原创 今天面试官问了我函数节流和函数防抖,前端优化中常用的方法

为什么需要节流和防抖呢例如:百度输入框,输入框中的内容发生改变时,就会发送服务端请求;若输入hello(连续输入),会发送5次请求,这样会影响浏览器的性能。此时,我们需要改变其发送请求的次数降低浏览器的压力,输入hello发送一次请求就可以。在js使用函数节流或者函数防抖和函数节流来解决上述问题,下面我们就来了解一下这两种方法函数防抖什么是函数防抖[debounce]?函数...

2020-05-07 16:26:34 258

原创 Promise对象异步编程的一种解决方案学习总结

什么是PromisePromise对象用于表示一个异步操作的最终状态(完成或失败)以及其返回的值同步任务会阻塞程序执行(alert、for、…)异步任务不会阻塞程序执行(setTimeout、fs.readFiles)特点:对象的状态不受外界影响‘一旦状态改变就不会再变,任何时候都是这种结果.回调函数与Promise回调函数实现元素平移function moveTo(el...

2020-05-05 21:20:00 384

翻译 如何快速理解BFC(Block Formating Context)

为什么会有BFC呢?在前端布局中,为了使样式达到自己设计的样子,我们会让元素脱离文档流,想像很美好,但是现实往往有差距。BFC就是为了解决布局中排版的一些问题而出现的BFC是什么?如何触发BFC?设置CSS属性BFC可以解决什么问题,这种问题还有其他解决方法吗?浮动元素另父元素高度塌陷问题 浮动元素脱离了文档流 ,可给父元素添加下图所示:其他方法解决父元素塌陷...

2020-04-28 23:45:43 210

空空如也

空空如也

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

TA关注的人

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