自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js[数组、对象数组去重和删除指定值];[判断空对象]

特点:创建一个空 Map 数据结构,遍历需要去重的数组,把数组的每一个元素作为 key 存到 Map 中。由于 Map 中不会出现相同的 key 值,所以最终得到的就是去重后的结果。特点:新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则 push 进数组。方法会删除数组中的最后一个元素,并返回该元素的值;特点:不考虑兼容性,这种去重的方法代码最少。方法会删除数组中的第一个元素,并返回该元素的值;当你想要删除特定的值时,这种方法更加简洁。

2024-06-25 17:00:08 493

原创 JavaScript 导致内存泄漏的场景和规避方法

在日常开发中,我们经常会无意识一些操作导致内存溢出。为此我总结一下内存溢出的几种场景供大家参考。希望能在优化自己代码的道路上有所帮助。

2024-06-19 17:03:36 673

原创 对this对象的理解

This 是执行上下文中的一个属性,它指向最后一次调用这个方法的对象。this的值并不是在函数定义时确定的,而是在。在实际开发中,this 的指向一般可以通过四种调用模式来判断。

2024-05-20 14:24:12 392

原创 call、apply、bind三者的区别

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

2024-05-13 14:52:02 516

原创 对Promise的理解

可以获取异步操作的消息, 它的出现大大改善了异步编程的困境,,它比传统的解决方案回调函数和事件更合理和更强大。Promise的实例有。

2024-05-11 15:26:58 595

原创 js异步编程的实现方式

这是异步操作最原始的用法。是不利于代码的阅读和维护,各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数。

2024-05-08 15:45:53 488

原创 JS 实现继承的几种方式

现在有parent、child两个函数,child函数的实例想要访问parent函数的属性和方法(child想要继承parent)。

2024-05-07 16:39:05 495

原创 includes()、startsWith()、endsWith()、indexOf()、lastIndexOf()介绍

includes()、startsWith()、endsWith()是新增的方法includes()、startsWith()、endsWith()的index表示从哪个位置查找【不写以字符串开头查找】)

2024-04-30 10:35:33 354

原创 for...in 和 for...of 的区别

for...of是ES6新增的遍历方式,允许遍历一个含有 iterator 接口的数据结构(数组、对象等)并且返回各项的值。

2024-04-26 17:31:29 300 1

原创 ES6 模块与 CommonJS 模块有什么异同

而 CommonJS 的模块导入则是通过值拷贝的方式来实现的,即每个变量都拷贝了一份导出变量的值。这意味着如果在 ES6 的模块中修改导出变量的属性,那么其他导入该变量的模块也会受到影响,而在 CommonJS 中则不会。ES6 的模块化适用于浏览器端和 Node.js 中使用,它采用了异步导入、编译时静态分析等技术,使得代码可读性更好,依赖关系更清晰,能够有效提高代码执行效率。而 CommonJS 则更适合于服务器端,因为 Node.js 中使用的大部分第三方模块都是基于 CommonJS 规范的。

2024-04-26 16:48:38 242

原创 escape、 encodeURI、 encodeURIComponent 三种编码方式的区别

如果要编码 URL ,但需要跳转地址,那只能用 encodeURI 方法,因为encodeURIComponent 会对 :/ 进行编码,会导致没法跳转地址。和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。编码之后的效果:%XX 或 %uXXXX这种形式。函数是对字符串进行编码的,作用是让他们在所有电脑上可见。ASCII字母、数字、~!方法生成新的由十六进制转义序列替换的字符串。进行编码的,唯一的区别是编码的范围不一样。ASCII字母、数字、~!

2024-04-24 16:25:26 179

原创 对JSON的理解

json是一种轻量级的数据交换格式json采用完全独立于计算机语言和操作系统的平台,不同的编程语言和操作系统json数据是一致的。

2024-04-24 14:55:10 166

原创 ES6之---Proxy简介

ProxyProxy是JavaScript中的内置对象,它提供了一种机制,可以拦截并自定义各种操作,如属性访问、函数调用、构造函数调用等。Proxy的构造函数接受两个参数目标对象(被代理的对象)和一个处理器对象(用于定义拦截器)。// 写法:target是目标对象,handler是处理器对象。

2024-04-24 10:59:28 374

原创 JavaScript 中的包装类型

在 JavaScript 中, 基本类型是没有属性和方法的, 但是为了便于操作基本类型的值,在调用基本类型的属性或方法时 JavaScript 会在后台隐式地将基本类型的值转换为对象JavaScript提供了三种包装类StringNumberBoolean。​​​1、String包装类可以在字符串上调用各种方法,如等。// 输出 "HELLO WORLD"尽可能使用基本数据类型而不是对象包装器。明确了解自动装箱和拆箱的行为,以便明确何时发生转换。使用===

2024-04-22 11:02:13 802

原创 Object.is() 与比较操作符 “ ===” 、 “ ==” 的区别

都是比较两个值的相等性的。

2024-04-19 16:19:58 212

原创 如何获取安全的 undefined 值?

你可以为参数提供默认值。这样,如果调用函数时没有提供该参数的值,函数将使用默认值。

2024-04-19 10:23:57 433

原创 JavaScript 有哪些数据类型

JavaScript 共有 Undefined、 Null、 Boolean、Number、 String、 Object、 Symbol、 BigInt八种数据类型。注:Symbol 和 BigInt 是 ES6 中新增的数据类型(1)Undefined:【未定义/未初始化】此类型只有这一个值,当声明的变量未赋值时,就相当于 赋值了Undefined。(2)Null: 【空对象】Null只有一个值,null表示一个控制值对

2024-04-18 15:01:07 1115

原创 VUE修改组件props中的值报错Avoid mutating a prop directly since the value will be overwritten whenever the par

报错信息:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "showPromptMes"Vue2.0 中组件props中的数据只能单向流动,即只能从父组件通过组件的D

2024-04-17 14:48:42 283

原创 路由的 hash 和 history 模式的区别

为了构建SPA(单页面应用)即不刷新整体页面,通过地址栏中的变化来实现单页面的切换等功能。Vue-Router用了两种模式来实现:hash 模式和history 模式。默认的路由模式是 hash 模式。hash模式和 history模式都属于浏览器自身的特性, Vue-Router只是利用了这两个特性来实现前端路由和页面的关联。hash模式和 history模式最直观的区别就是-----hash路由带#号history路由不带#号。1、hash模式带#号比较丑,history模式比较优雅;2、

2024-04-17 11:08:52 883

原创 VUE路由之---Vue-router

Vue Router 是的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。单个路由(某一个路由)多个理由集合路由管理器。

2024-04-15 16:14:11 622

原创 VUE生命周期

(创建前):数据观测和初始化事件还未开始, 此时data 的响应式追踪、 event/watcher 都还没有被设置, 也就是说不能访问到 data、 computed、 watch、 methods 上的方法和数据。(挂载前):在挂载开始之前被调用, 相关的 render函数首次被调用。(销毁后):实例销毁后调用, 调用后, Vue 实例指示的所有东西都会解绑定, 所有的事件监听器会被移除, 所有的子实例也会被销毁。(更新后):在数据更新之后被调用,该方法还会在组件的子组件更新之后被调用。

2024-04-11 11:50:45 1121

原创 VUE中v-if 和 v-for 哪个优先级更高? 如果同时出现, 应如何优化?

在vue3.x没出来时,回答:v-for 优先级比 v-if高是没问题的,但是有了vue3.x后这个回答就不正确了。正确的回答是什么呢咱们往下看。

2024-04-10 17:08:02 430

原创 delete 和 Vue.delete 删除数组的区别

是js中原生的操作符,当用 delete 删除数组中的元素时,它 只是被删除的元素变成了 empty/undefined 其他的元素的键值还是不变。即不会改变数组的长度。被删除的元素位置会被保留为一个空洞,即数组的索引位置仍然存在,但对应的元素值为 undefined。Vue.delete 直接删除了数组 改变了数组的键值;并且会触发ue 的响应式更新机制,确保删除操作能够被 Vue 监测到并更新视图。是 Vue框架提供的一个全局方法,用于删除 Vue 响应式对象【数组和对象】中的属性或数组元素。

2024-04-10 15:31:53 195

原创 vue项目中assets 和 static 文件夹存放资源的区别

中的资源文件在npm run build打包是会被webpack 处理,对内部的资源文件进行压缩格式化等操作,最终放到static文件夹中和index.html一起上传。项目中所需要的资源文件图片, 字体图标, 样式文件等都可以放在这两个文件下。项目中引入的第三方的资源文件如 echarts 等文件可以放置在 static 中,第三方文件已做过处理无需处理可直接上传。中放置的静态资源文件就不会要走打包压缩格式化等流程, 而是直接进入打包好的目录, 直接上传至服务器。

2024-04-10 15:10:20 191

原创 vue中$nextTick 原理及应用

Vue 的 nextTick 其本质是对 JavaScript 执行原理 EventLoop 的。setImmediate、 setTimeout 的原生 JavaScript 方法来模拟对应的。nextTick 不仅是 Vue 内部的异步队列的调用方法, 同时也允许开发。微/宏任务的实现, 本质是为了利用 JavaScript 的这些异步回调任。$nextTick 是 Vue.js 中的一个实例方法,务队列来实现 Vue 框架中自己的异步回调队列。

2024-04-03 17:55:08 295

空空如也

空空如也

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

TA关注的人

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