- 博客(74)
- 收藏
- 关注
原创 还在等后端接口?自己写得了
前端:芜湖~静态页面写完,起飞前端:接口能不能搞快点后端:没空前端:emmmmmm迭代结束…老板:前端你怎么回事?搞这么慢前端:A:跳起来打老板B:跳起来打后端C:不干了D:自己全干E:继续挨骂当然是选择Mock.js啦(骗你的,我自己也不用)Mock.js是一个用于生成随机数据的 JavaScript 库,它可以帮助开发者快速模拟后台接口返回的数据,常用于前端开发中的接口调试和数据展示。
2024-12-20 14:30:00
676
原创 说一下JS的垃圾回收机制?V8的新生代老生代垃圾回收了解吗?
新生代回收频繁,采用复制算法,且内存较小,因此回收代价低,回收过程快速。老生代对象生命周期较长,采用更复杂的标记-清除和标记-压缩算法,回收较少但代价较高。这种分代回收策略是为了优化内存管理,减少频繁回收带来的性能损失,尤其在大型应用中效果显著。
2024-12-20 09:30:00
911
原创 使用new Image() 简单实现图片预加载
在 Vue 中实现图片预加载是一个简单而高效的过程,通常会通过生命周期钩子函数(如created)来管理。你可以使用创建图片对象,设置其src属性来实现图片的预加载,减少后续访问时的等待时间。具体实现根据自己项目来写。
2024-12-19 14:30:00
681
原创 协商什么?什么缓存?总之很强
强缓存:适用于不常改变的静态资源,比如图片、字体、视频等,通过设置过期时间来避免频繁的请求,提高页面加载速度。协商缓存:适用于内容经常变化的资源,比如 API 接口、用户数据等,能够保证资源的最新性,并在不重新下载的情况下减少网络带宽消耗。
2024-12-19 09:30:00
701
原创 0.1 + 0.2 到底等不等于 0.3 ?
面试官:0.1 + 0.2 等于多少?我:我:反正不等于0.3在 JavaScript 中,0.1 + 0.2!= 0.3是因为浮点数的存储方式导致精度误差。浮点数无法精确表示某些十进制数(例如 0.1 和 0.2),因此加法运算的结果会偏离期望值。使用来四舍五入到特定的小数位。使用toFixed()来将结果格式化为固定的小数位。将浮点数转为整数进行计算,再恢复小数。这些方法可以有效地减小误差,确保结果符合预期。现在可以跟面试官大声说出来0.1 + 0.2 等于多少了。
2024-12-18 14:30:00
1412
原创 ES6的模块化和commonJS的模块化有什么区别?
ES6模块更适合于现代JavaScript开发,具有静态分析、支持异步加载、模块化和更清晰的语法。CommonJS模块主要用于Node.js环境,特点是同步加载、动态模块解析,适用于服务器端开发,但不太适合浏览器环境,除非通过打包工具进行转换。两者各有优缺点,通常在浏览器环境中使用 ES6 模块,在Node.js中则更常用 CommonJS,但在现代应用中,尤其是配合构建工具(如 Webpack、Babel)时,ES6 模块正逐渐成为标准。
2024-12-18 09:30:00
1237
原创 new Image() 预加载 为什么比 <img>直接加载要好?
标签来加载图片,浏览器同样会请求并缓存图片,但如果图片在初次加载时不可见(比如在页面下方),用户滚动到该位置时,可能会再次触发网络请求,尤其是在使用懒加载(lazy load)等技术时。并且,如果你知道某些图片很可能会被需要(例如图片懒加载场景中的下拉加载图片),你可以提前加载这些图片,确保用户滚动时能立刻看到图片。加载图片时,图片会被缓存在浏览器的内存中(通常是浏览器的资源缓存),因此如果图片已经被加载过,后续使用该图片时会直接从缓存读取,而不需要重新请求网络资源。都会触发相同的图片加载过程,但是。
2024-12-17 17:48:23
1056
原创 基于uniapp使用websocket进行实时通讯
最近在做一个赛事的需求,需要使用实时通讯实现房间内交换位置,转让房主,踢出房间等操作记录一下基于uniapp中websocket的封装和使用话不投机半句多(少bb),准备动手,准备动手类名私有属性: 心跳定时器。#callback: 回调函数。: WebSocket 连接状态。#isClosed: 是否主动关闭。/** 心跳定时器 *//** 回调函数 *//** ws状态 *//** 是否主动关闭 */类封装了 WebSocket 的连接、消息发送、心跳机制和重连逻辑。
2024-12-17 17:45:55
1554
1
原创 ...到底帮你做了什么,让你至今都忘不了TA
聪明的你肯定知道我说的是拓展运算符…吧拓展运算符...是 JavaScript 中一个强大的工具,它可以使数组和对象的操作更加简洁、高效。无论是数组的合并、拷贝、解构,还是函数参数的处理,...都提供了灵活的解决方案。在实际开发中,...合并多个数组或对象;创建浅拷贝;解构数组和对象;处理函数的剩余参数。通过对拓展运算符底层原理的理解,你能够更好地掌握它的使用,并避免一些常见的陷阱。了解并熟练掌握拓展运算符的使用,将极大提升你在日常开发中的效率和代码可读性!
2024-12-08 09:30:00
1106
原创 js数组(Array)常用方法小结
方法列表(常用)(ps:👇点击即可跳转目标方法说明,点击方法标题回到列表目录,开袋即食,方便食用,入口即化~)更新:markDown编辑器内可以跳转锚点,但是发布文章后PC端跳转不了,手机端可以正常跳转锚点join()push()pop()shift()unshift()sort()reverse()concat()slice()splice()reduce()(ES5新增)indexOf()(ES5新增)(ES5新增)forEach()(ES5新增)map()(ES5新增)filter()
2024-12-07 14:30:00
1006
原创 页面跳转如何优雅携带大数据Array或Object
在小程序或者app开发中,最常用到的就是页面跳转,上文中详细介绍了页面跳转4种方法的区别和使用,可以点击查看👉分析小程序页面导航与事件通讯。而页面跳转就经常会携带数据到下一个页面,常见的做法是通过 URL 参数将数据拼接在navigateTo的 URL 后面。然而,这种方式在处理较大数据(如数组或对象)时会显得笨拙且有限。下面将讨论通过 URL 传递参数的局限性,以及使用进行数据传递的好处,并提供代码示例进行解析。通过使用。
2024-12-07 09:30:00
857
原创 页面跳转如何优雅携带大数据Array或Object
在小程序或者app开发中,最常用到的就是页面跳转,上文中详细介绍了页面跳转4种方法的区别和使用,可以点击查看👉分析小程序页面导航与事件通讯。而页面跳转就经常会携带数据到下一个页面,常见的做法是通过 URL 参数将数据拼接在navigateTo的 URL 后面。然而,这种方式在处理较大数据(如数组或对象)时会显得笨拙且有限。下面将讨论通过 URL 传递参数的局限性,以及使用进行数据传递的好处,并提供代码示例进行解析。通过使用。
2024-12-07 09:30:00
610
原创 分析小程序页面导航与事件通讯
在小程序或者app开发中,页面导航和事件通讯是两个非常重要的功能。了解不同的导航方法及其特点,以及如何有效地在页面之间进行数据传递,有助于优化用户体验。navigateToredirectToreLaunch和switchTab,并探讨如何使用进行页面间事件通讯。在小程序开发中,选择合适的页面跳转方式至关重要。通过理解navigateToredirectToreLaunch和switchTab的区别,可以更有效地管理页面状态,优化用户体验。此外,使用。
2024-12-06 09:30:00
543
原创 DNS 协议了解多少
DNS(Domain Name System,域名系统)是一种将人类可读的域名转换为计算机可读的 IP 地址的协议。由于网络通信主要依赖 IP 地址,但这些地址对用户来说往往难以记忆,DNS 提供了一种方便的方式来访问网络资源。DNS 协议是互联网运作的基石,通过将用户友好的域名转换为计算机可读的 IP 地址,使得访问网站变得简单和高效。虽然 DNS 协议本身存在一些安全隐患,但随着技术的不断发展,新的安全措施也在不断完善,为互联网用户提供更安全的网络体验。
2024-12-05 14:30:00
599
原创 Cookie 构成部分及使用场景
Cookie 是由服务器生成的小文本文件,存储在用户的浏览器中,用于保存用户的状态信息。Cookie 允许服务器在多个请求中识别用户,从而提供个性化的体验。
2024-12-05 09:30:00
413
原创 str.search(regexp):在字符串中查找匹配正则表达式的子字符串,找不到返回-1
search()方法是一个简单而有效的工具,用于查找字符串中匹配正则表达式的子字符串的起始位置。合理使用该方法可以提高字符串处理和数据验证的效率。
2024-12-04 14:30:00
313
原创 match():根据正则表达式在字符串中查找匹配项
match()方法是一个强大的工具,用于基于正则表达式查找和提取字符串中的内容。合理使用该方法可以简化字符串处理和数据验证的逻辑。
2024-12-04 09:30:00
587
原创 padStart() 与 padEnd():字符串开始或结束添加指定字符以达到固定长度
padStart()和padEnd()方法用于在字符串的开头或结尾填充指定的字符,以达到指定的长度。以下是它们的详细介绍。padStart()
2024-12-03 14:30:00
643
原创 repeat():重复指定次数
repeat()是一个简便的方法,用于生成重复字符串,适合在各种文本处理场景中使用。合理使用该方法可以简化代码,提高字符串操作的效率。
2024-12-03 09:30:00
420
原创 startsWith() 和 endsWith():检查字符串是否以某个子字符串开始或结束
和endsWith()是检查字符串开头和结尾的便捷方法,可以简化条件判断和输入验证的逻辑。合理使用这两个方法可以提高代码的可读性和维护性。
2024-12-02 14:30:00
715
原创 str.includes(searchString[, position]):判断一个字符串是否包含另一个字符串
includes()是一个非常有用的方法,适合在字符串中查找子字符串。它的使用可以简化字符串处理的逻辑,提高代码的可读性。
2024-12-02 09:30:00
352
原创 trim():移除字符串两端的空白字符
trim()是一个简单但非常实用的方法,用于处理字符串两端的空白字符。合理使用trim()可以提升用户体验和数据处理的质量。
2024-12-01 14:30:00
361
原创 toLowerCase()与toUpperCase()--转换为小写和转换为大写
和是用于大小写转换的基本方法,非常实用。适当使用这些方法可以提升用户体验和数据处理的准确性。
2024-12-01 09:30:00
477
原创 str.split(separator[, limit])--将字符串分割成数组
split方法用于将字符串分割成数组,以下是它的详细介绍。split。
2024-11-30 14:30:00
292
原创 slice(start[, end])与substring(start[, end])--返回指定区间内的子字符串
slice可以接受负数索引,并且仅用一个参数时,表示从该位置到字符串结束,如果start大于end,则会返回一个空字符串substring不支持负数索引,单个参数时也表示从该位置到字符串结束,但如果start大于end,则会自动交换start和end的值继续查找。
2024-11-30 09:30:00
265
原创 replace (regexp|substr, newSubstr|function)替换字符串中的指定部分
replace方法用于替换字符串中的指定部分。它可以接受一个子字符串或正则表达式作为第一个参数,第二个参数是替换的内容。
2024-11-29 14:30:00
324
原创 lastIndexOf(searchValue,fromIndex)--查找某个元素或子字符串在字符串或数组中最后一次出现的位置 ,找不到返回-1
是一个常用的方法,通常用于字符串和数组。在 JavaScript 中,方法用于查找某个元素或子字符串在字符串或数组中最后一次出现的位置。
2024-11-29 09:30:00
495
原创 string.indexOf(searchValue, fromIndex) -- 返回子字符串首次出现的索引,找不到返回-1 从左至右查找
indexOf是一个简单且强大的工具,用于在字符串和数组中查找元素。通过掌握它的用法,可以在许多情况下提高代码的效率和可读性。
2024-11-28 14:30:00
933
原创 concat(string1, string2, ...) -- 返回连接后的字符串。
在 JavaScript 中,concat()方法用于连接两个或多个字符串,并返回一个新的字符串。这个方法不会改变原来的字符串,而是返回一个新的字符串,包含所有连接的字符串内容。
2024-11-28 09:30:00
906
原创 charAt(index) -- 返回指定位置的字符串
是 JavaScript 字符串对象的方法之一,用于返回指定索引位置的字符。以下是对的详细解释,包括它的使用和典型场景。
2024-11-27 14:30:00
554
原创 谈谈throw new Error 和 return new Error
特性作用抛出异常,停止当前函数执行返回一个 Error 对象,正常结束函数控制流转移到最近的块控制流继续,后续代码正常执行捕获需要通过来捕获调用者需要手动检查返回的错误对象使用当需要立即停止执行并将错误传递给调用者时,通常在出现严重问题时使用。常用于输入验证、异常处理等场景。使用当需要返回一个错误对象而不中断函数执行时使用。适合于希望在外部获取错误信息而不是通过异常捕获来处理错误的情况。
2024-11-27 09:30:00
1307
原创 面试官:你用过keep-alive嘛
是 Vue 中用于提升性能的重要工具,尤其在需要频繁切换的场景中,可以显著提升用户体验。通过合理配置include和exclude,以及利用组件的生命周期钩子,开发者可以灵活管理组件状态,确保应用的高效运行。
2024-11-26 17:31:08
1159
原创 为何现在市⾯上做表格渲染可视化技术的,⼤多数都是 canvas ,⽽很少⽤ svg 的?
由于 Canvas 的绘图是直接操作像素,所以在⼤规模绘制⼤量图形时,Canvas 的性能 优势更为明显。由于 Canvas 绘制的图形是像素级别的,可以直接对图形 进⾏像素级别的操作,可以⽅便地进⾏复杂的动画和交互效果。⽽ SVG 的图形是由 DOM 元素组成 的,每个元素都要进⾏布局和绘制,所以在处理复杂的动态交互时,性能⽅⾯可能会受到限制。:Canvas 更适合处理复杂的图形。由于 Canvas 是像素级别的绘制,可以直接操作像 素,因此可以实现更加灵活和复杂的图形效果,⽐如阴影、渐变等。
2024-11-26 09:54:55
242
原创 Stylus、Less 和 Sass 的使用与区别
在现代前端开发中,CSS预处理器如Stylus、Less和Sass帮助开发者编写更高效和可维护的样式代码。下面我们将逐一介绍这三种预处理器的基本用法、功能对比以及它们之间的主要区别。
2024-11-25 09:52:53
838
原创 聊聊try...catch 与 then...catch
适合于同步代码,能够捕获代码块中抛出的异常。then和catch:用于处理 Promise 的结果和错误,适合异步操作。结合 try...catch:提供了清晰的异步错误处理方式,增强了代码的可读性。在实际开发中,选择哪种方式取决于代码的性质(同步或异步)以及个人或团队的编码风格。
2024-11-24 14:30:00
932
原创 如何使用Vue 自定义指令
自定义指令是 Vue 提供的一种机制,允许开发者在 DOM 元素上添加特定的行为。与内置指令(如v-ifv-for)不同,自定义指令是由开发者定义的,能够扩展 Vue 的功能。自定义指令可以在全局或局部注册。// main.js// 当绑定元素插入父节点时调用// 聚焦元素el.focus();});在这个例子中,我们创建了一个名为v-focus的自定义指令。当该指令被应用到元素上时,该元素会在插入到 DOM 后自动聚焦。自定义指令可以定义多个生命周期钩子,以处理不同的场景。bind。
2024-11-24 09:30:00
877
原创 如何详细区分watch 和 computed
在 Vue.js 中,watch和computed是响应式编程中非常重要的工具。合理使用它们可以提升应用的性能和可维护性。
2024-11-23 14:30:00
1099
原创 面试老生常谈:GET、POST 和 PUT的区别
GET:GET 请求用于从服务器获取数据,通常用于请求网页或获取资源。它的参数通常附加在 URL 后面,这使得 GET 请求适合于获取少量数据的场景。POST:POST 请求用于将数据发送到服务器,通常用于创建新资源。数据通过请求体传递,因此没有大小限制。这使得 POST 请求适合于提交表单或上传文件等场景。PUT:PUT 请求用于更新已有资源。与 POST 不同,PUT 通常是对现有资源的替换。PUT 请求也通过请求体传递数据,支持更复杂的更新操作。
2024-11-23 09:30:00
1460
原创 面试官:你会使用new Set进行去重,你知道其原理嘛?
面试官:数组怎么去重?我:new Set面试官:new Set的原理是什么?我:emmmmmSetnew Set是一个简单且高效的去重方法,利用其唯一性原则和高效的内部数据结构,开发者可以快速去除数组中的重复项。理解其原理和使用方式,有助于更灵活地处理数据。通过这种方式,可以简化代码,提高性能,尤其是在处理较大的数据集时。
2024-11-22 14:30:00
831
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人