自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS中的对象扁平化

给定如下的对象,需要将对象扁平化。例如:展平为:{a.b : 1, a.c : 2, a.d.e : 5, b[0] : 1, b[1] : 3, b[3].a : 2…

2025-03-31 11:02:05 143

原创 前端一些你不了解的知识点?

为什么会谈到跨域问题呢?开发环境跨域:在前后端分离项目,前端在一个域名,后端API在另一个域名,请求后端,必然会发生跨域无法获取到资源。在具体的业务场景中,电商平台跨域前端部署在订单支付接口部署在用户点击支付时,前端调用支付接口触发跨域,需服务端配置那为什么会跨域呢?是受浏览器同源策略的影响。什么是同源策略?同源策略(Same-Origin Policy,SOP)是浏览器为了保障用户信息安全而实施的一种安全策略。它限制了一个源(即协议、域名和端口的组合)的文档或脚本如何与另一个源的资源进行交互。

2025-03-27 11:56:37 584

原创 【JavaScript】作用域和闭包

当一个函数内部定义了一个闭包,并且这个闭包引用了外部变量时,如果这个闭包被其他地方持有,就会导致外部变量无法被正常释放,从而造成内存泄漏。解决闭包中的内存泄漏问题通常需要注意。举个简单的例子,我们有一个原始函数add(a, b, c),我们可以将它柯里化为addCurried(a)(b)©的形式。,创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以访问到当前函数的局部变量。,使得闭包中引用的外部变量和闭包函数能够被垃圾回收机制释放。(缓存某个数据,不用一直去调用接口数据)

2024-12-02 11:05:51 794

原创 【JavaScript】变量提升和函数提升

JS解析时,会先找到代码中,变量提升只会提升其中的变量声明,而不会提升其赋值操作。变量提升的特点:​​​变量提升的主要目的是,因为 JavaScript 是一种解释执行的语言,它在执行代码之前会进行解析和编译。通过变量提升,JavaScript 引擎可以提前知道哪些变量和函数在作用域中可用,从而避免了在执行过程中出现未定义的情况。变量提升可以使函数之间相互调用。

2024-11-30 14:16:39 850

原创 js中this的指向?改变this指向的办法?

三者都可以改变函数的this对象指向三者第一个参数都是this要指向的对象,如果没有这个参数或参数为undefined或null,则默认指向全局window三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入bind是返回绑定this之后的函数,apply、call 则是立即执行。

2024-11-29 11:49:13 709

原创 判断一个元素是否在可视区域?

并不能满足所有情况,甚至说,它只能满足一种情况的判断,那就是需要判断的那个dom节点,它只身处在一个滚动条的情况下。scrollLeft 和 scrollTop 属性既可以确定元素当前滚动的状态,也可以设置元素的滚动位置。是指元素的上外边框包含元素的上内边框之间的像素距离,是相对于哪个节点,来判断是否在可视区域内,默认。下面展示的结果是错误的,圈圈应该是红色才对。的话,那就说明元素在可视窗口内。:DOM对象的一个方法,返回一个。如果元素距离可视窗口的偏移量。减去 滚动条滚动的高度。是指元素垂直滚动的距离。

2024-11-26 21:13:38 1252

原创 对象创建和继承方法

{this总结: 通过构造函数创建的对象相比于工厂函数:1.不用显示创建对象、2.不用return、3.直接将属性和方法赋给this(创建的实例对象)、4. 命名开头大写字母。

2024-11-20 12:12:07 1030

原创 数组对象的扁平化

flat(n)编写函数,递归实现(reduce)数量级较小的时候,可以直接使用tostring()。

2024-11-19 19:36:24 447

原创 前端开发过程中不容忽视的问题

在前端开发中:当接口出现问题,页面就会直接崩溃。在JS开发应用中导致页面崩溃的多种边界情况:解构赋值、数组方法调用、遍历对象数组、使用对象方法、async/await捕获异常失败、JSON.parse解析报错、API兼容、内存溢出等。

2024-11-18 12:08:56 340

原创 函数式编程

函数式编程是一种“编程范式(programming paradigm)”,一种编写程序的方法。主要的编程范式有三种:命令式编程、声明式编程和函数式编程函数式编程更加强调程序执行的结果而非执行的过程,强调将计算表达为函数的组合。核心理念包括不可变数据和纯函数(相同的输入总有相同的输出,没有副作用)。函数式编程通过将状态和计算逻辑分离,减少副作用,从而提高代码的可预测性和可维护性。举个例子:i++) {

2024-11-15 12:38:21 849

原创 CSS实现两栏和三栏布局

双飞翼布局首先将中间盒子的宽度设为了100%,在定位左右盒子的时候会覆盖中间盒子的两端,这样就需要在中间盒子中在定义一个盒子,并留出margin的两侧值。left设置margin-left:-100%,相对定位+设置left:-left的宽度;right设置margin-left=-right的宽度,相对定位+right:-right的宽度即可将两个盒子与center放在一行。给outer盒子指定padding-left和padding-right值,留出left和right位置;

2024-11-14 10:26:17 299

原创 Webpack和Vite

webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将项目中所需的每一个模块组合成一个或多个包bundles,它们均为静态资源,用于展示内容。Webpack是一个模块打包器(bundler)。在Webpack看来, 前端的所有资源文件(js/json/css/img/less/…)都会作为模块处理。

2024-11-13 11:51:00 1989

原创 谈一谈Promise

的一种解决办法,用来获取异步操作结果值的对象。它的出现可以避免回调地狱问题,Promise的出现使得获取异步任务结果的方案变得更合理更强大。promise共有三种状态:Pending、Resolved、Rejected。当把异步任务放在Promise中处理,它的状态就是Pending,任务完成后并且成功变成Resolved,失败了就是Rejected。状态一旦改变了就不会再更改了!

2024-11-12 16:56:51 741

原创 Common JS和 ES module 区别

模块化是组织代码、管理依赖关系和提高代码可维护性的重要手段。随着JavaScript的发展,出现了多种模块化规范,其中最为流行的两种是CommonJS和ES6模块(也称为模块或ES模块)CommonJS和ES6模块两者区别。

2024-11-11 22:16:18 599

原创 设计模式的总结及观察者模式和订阅者模式区别?

确保一个类只有一个实例,并提供一个全局访问点。

2024-11-08 18:04:03 975

原创 Cookie、Session、Token

为什么要有session、cookie和token,HTTP协议是一种无状态的,所谓无状态就是客户端每次与服务端通信,都必须重新与服务端链接。一次客户端请求链接一次服务端,下一次请求与上一次请求没有关系。这种无状态的方式就会有一个问题:如何判断两次请求是同一个发出的?用户A在页面A发起请求获取用户个人信息,然后用户A在另外一个页面B发起同样的请求获取用户个人信息,那么如何确定这两个请求是同一个人发出的呢?为了解决这种问题,需要一种方式知道发起请求的客户端是谁?此时,在扩大一些解决权限问题。

2024-11-06 11:16:00 769

原创 HTTP和HTTPS

当接收方收到数字证书的时候,先根据原始信息使用同样的 Hash 算法生成一个摘要,然后使用公证处的公钥来对数字证书中的摘要进行解密,最后将解密的摘要和生成的摘要进行对比,就能发现得到的信息是否被更改了。这个方法最要的是认证中心的可靠性,一般浏览器里会内置一些顶层的认证中心的证书,相当于我们自动信任了他们,只有这样才能保证数据的安全。

2024-11-05 22:07:56 720 1

原创 什么是DNS、CNAME、CDN?

DNS(Domain Name System)是因特网的一项服务,它,能够使人们更方便地访问互联网。通过域名而非IP地址去访问网站,但域名并不能被计算机直接识别,所以需要通过DNS将域名“翻译”称可由计算机直接识别的IP地址。互联网中的域名系统 DNS 被设计成一个层次树状结构的联机分布式系统,并且采取的是客户服务器的方式,将域名和IP地址相互映射联系了起来。(来自https://blog.youkuaiyun.com/codejas/article/details/80086068)

2024-11-05 18:07:30 1706

原创 无人车学习问题

一些问题

2022-11-17 11:12:40 1066

空空如也

空空如也

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

TA关注的人

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