JavaScript
文章平均质量分 74
进阶JavaScript
SailingCoder
这个作者很懒,什么都没留下…
展开
-
面试官:在JavaScript中,Map和Object用哪个好?
如果您有任何问题或不同的见解,欢迎在评论区留言讨论。原创 2024-07-22 15:56:46 · 184 阅读 · 0 评论 -
【前端大忌】不要小看 let 和 const,这里面也博大精深
引言:最近,“const定义的对象属性是否可以改变?” 这道面试题频频出现。这一问题让我们意识到,let 和 const 不仅仅是简单的变量声明方式,其中的知识点和应用场景也值得我们深入探讨。原创 2024-07-09 10:46:39 · 1030 阅读 · 0 评论 -
判断JavaScript对象是否为空,最佳方法与性能对比
在实际应用中,如果你的对象很大,或者你正在进行性能关键的操作,使用或可能会更合适,因为它们直接返回属性列表而不需要额外的遍历或字符串转换。如果你需要兼容老旧环境,for...in循环仍然是一个可靠的方法,只需确保使用检查以避免误判。你最常用哪种方法判断对象是否为空?欢迎在评论区一起讨论下!原创 2024-06-03 16:05:45 · 779 阅读 · 0 评论 -
性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染
在处理大规模数据集渲染时,前端性能常常面临巨大的挑战。本文将探讨 react-virtualized-list 库如何通过虚拟化技术和 Intersection Observer API,实现前端渲染性能飙升 50% 的突破!除此之外,我们一同探究下该库还支持哪些新的特性和适用场景。如果你正在寻找解决大数据集渲染瓶颈的方法,或是希望提升前端应用的响应速度,这篇文章将为你带来全新的启发与实用的解决方案。原创 2024-06-03 16:02:26 · 1244 阅读 · 0 评论 -
使用 Reflect.ownKeys 处理符号属性和不可枚举属性
在处理包含符号属性或不可枚举属性的对象时,方法提供了一个全面的解决方案。它可以返回对象自身的所有属性,无论它们是常规的、符号的还是不可枚举的。使用可以确保你不会错过任何属性,这对于一些特定场景(如深度克隆对象、对象比较、序列化和反序列化)非常有用。原创 2024-05-22 14:55:50 · 375 阅读 · 0 评论 -
仍在纠结使用Map还是Object?这篇详解让你做出明智选择!
在 JavaScript 的生态中,Map和传统的对象(Object)都广泛用于存储键值对数据结构,但它们各自的设计和功能有着本质的区别。本文将深入探讨Map与Object的关键区别,并通过代码示例展示在特定场景下选择使用哪一个更为合适。原创 2024-05-16 10:59:02 · 190 阅读 · 0 评论 -
Proxy和Reflect,打造灵活的JS代理机制 (代码示例)
通过使用Proxy,我们可以轻松地实现对象的代理和拦截操作。而Reflect的引入为与Proxy的配合提供了统一和规范的方式来操作对象。我们可以实现“数据绑定和观察者模式”,用来实现数据的双向绑定,通过拦截对象属性的读取和设置操作,可以自动通知变更。同时,也可以用来“验证和数据校验”,如校验form表单等。以及扩展对象功能和方法劫持,添加自定义功能或修改现有功能。还有很多。。。原创 2024-05-15 09:49:44 · 619 阅读 · 0 评论 -
JavaScript不仅有变量声明,还有变量提升
在开发过程中,我们通常按照从上到下的顺序编写代码逻辑,而不去刻意考虑变量提升和函数声明提升。优先使用let和const来声明变量。这样可以避免变量提升导致的意外行为,因为let和const声明的变量在赋值之前是不可访问的。在需要的时候才声明函数和类。避免在作用域顶部之外的地方引用尚未声明的函数或类。这样,我们可以在编写代码时最大程度地保持逻辑的清晰和正确性,减少由变量提升和函数声明提升引起的错误。原创 2024-05-13 09:54:19 · 997 阅读 · 0 评论 -
JS继承与原型、原型链
JavaScript继承是指在前端开发中,使用JavaScript实现对象之间属性和方法的继承关系。继承是面向对象编程的重要概念,它允许我们创建基于现有对象的新对象,并在新对象中拥有原有对象的属性和方法。在JavaScript中,继承是通过原型链来实现的。每个对象都有一个原型对象,它包含对象的属性和方法。当我们访问一个对象的属性或方法时,如果对象本身没有定义该属性或方法,JavaScript引擎会通过原型链向上查找,直到找到对应的属性或方法为止。原创 2024-04-15 15:59:23 · 1208 阅读 · 0 评论 -
RxJS 核心原理-操作符(源码实现)
本文介绍了 RxJS 中操作符的核心原理和常见操作符的应用场景。通过应用操作符,我们可以构建复杂的数据处理流程,实现数据的转换、过滤、合并等操作。希望本文对你理解 RxJS 操作符的工作原理以及其在实际应用中的用法有所帮助。原创 2024-04-12 11:04:40 · 861 阅读 · 0 评论 -
【JS数据类型判断】各路大神对比,一劳永逸的解决方法
提供了简单直观的方式,特别适用于基础数据类型的判断。然而,在处理复杂数据类型和判断 null 时存在一些限制。用于判断对象是否属于特定类型,对于自定义对象类型较为有效,但在处理基础数据类型和多全局上下文时存在一些问题。指向对象的构造函数,提供直观的方式判断对象类型。然而,易受篡改且不适用于基础数据类型。🎉🎉🎉认为是最可靠的数据类型判断方式,适用于几乎所有数据类型,包括基础和复杂数据类型。专用于判断对象是否为数组,提供直观的方式。在处理其他复杂数据类型时无法提供准确信息。这里我还是强烈推荐。原创 2024-04-11 09:50:30 · 1022 阅读 · 0 评论 -
js判断对象是否为空的几种方法,新方法,性能还好
我自己常用文章中第一个,你有什么好用的方法呢,评论区一起讨论下原创 2024-04-01 16:10:22 · 1306 阅读 · 1 评论 -
node中的事件循环和javascript中的事件循环大致区别
Node.js 的事件循环比浏览器中的事件循环更加复杂,包含更多的阶段。例如,Node.js 的事件循环包括定时器阶段(timers)、I/O 阶段(pending callbacks)、空闲阶段(idle, prepare)、poll 阶段、检查阶段(check)、关闭阶段(close callbacks)等。这些阶段用于处理不同类型的异步操作。简单来说,一个是浏览器,一个是服务,造就了事件循环的阶段不相同,也产生了一个是对浏览器的页面交互和ajax处理,另外一个是对本地的 I/O 操作。原创 2024-03-21 16:01:28 · 790 阅读 · 0 评论 -
js如何拦截全局Fetch的请求和响应
Fetch API是一种用于进行网络请求和响应的现代Web API。它提供了一种简单、强大且灵活的方式来处理HTTP请求。在使用Fetch API时,我们通常创建一个请求对象,然后使用fetch函数发送请求,并处理返回的Promise。// GET请求示例:// POST请求示例:headers: {},})总体来说,使用Fetch API发送GET和POST请求的基本是相似的,但在POST请求中需要额外处理请求方法和请求体的数据。原创 2024-03-11 10:32:56 · 1369 阅读 · 0 评论 -
对于JavaScript 的 FileReader,你了解多少?
文章介绍了 FileReader 的方法、事件以及实际应用场景。在处理文件上传时,FileReader为开发者提供了强大而灵活的工具,能够异步读取文件内容并在不同阶段触发相应事件。原创 2024-02-02 10:52:27 · 710 阅读 · 0 评论 -
实践干货,探索for…in和for…of循环区别
在 JavaScript 中,遍历数组或对象是常见的操作。为了实现这一目的,开发者可以使用for循环,也可以使用更现代的循环结构,如for...in和for...of。尽管for…in和for…of在语法上相似,但它们在用途和功能上有显著的区别。本文将讨论这两种循环的用法和差异,并通过实战代码示例来解释它们。原创 2024-01-25 10:04:09 · 500 阅读 · 0 评论 -
【JavaScript详解】箭头函数和普通函数有什么区别
箭头函数和普通函数在 JavaScript 中各有各的用途。箭头函数提供了一种更为简洁的函数书写方式,同时也改变了this关键字的行为。在选择使用哪一种函数时,开发者应该根据具体的场景和需求来决定。在实际开发中,箭头函数因其简洁和this处理上的优势,常常用于回调函数和那些不需要使用this的场合。而普通函数则在需要动态this或者需要作为构造函数时发挥作用。原创 2024-01-23 10:35:51 · 611 阅读 · 0 评论 -
事件循环、任务队列
事件循环事件循环(Event Loop):指的就是同步、异步的任务分别进入不同的执行环境,最后都同步回归主线程,即主执行栈,异步进入到任务队列(Event Queue)。主线程串行执行任务完毕后,会去任务队列(Event Queue)读取相应的任务,继续串行在主线程执行。以上不断重复的过程被成为事件循环。事件循环中重要的有2点:主线程、任务队列(Event Queue)。下面是一个典型的事件循环例子:step1:主线程读取JS代码,此时为同步环境,形成相应的堆和执行栈;step2: 主线程遇到原创 2021-07-05 16:46:07 · 721 阅读 · 0 评论 -
Promise、Generator、Async三者的区别
在Promise、Generator、Async出现之前,JavaScript处理异步都是通过回调(callback)来实现的。原创 2021-12-07 15:41:20 · 1647 阅读 · 0 评论 -
Proxy、Reflect和WeakMap
Proxy、Reflect和WeakMap是ES6中引入的三个新的JavaScript特性。原创 2024-01-22 09:47:47 · 398 阅读 · 0 评论 -
高效实践,JavaScript全屏和退出全屏操作示例
尽管网上有许多第三方开源库可供使用,但由于后续业务场景的不确定性,修改源代码可能带来较大的成本和风险。鉴于全屏功能的实现并不复杂,因此我自己封装了一个解决方案。在项目中出现了一个需求,需要实现将页面投屏到屏幕上,并能够进行开启全屏和退出全屏的操作。现在,我将这个自封装的代码分享给大家,可以直接拷贝并使用。原创 2024-01-18 10:01:28 · 426 阅读 · 0 评论 -
require vs import,深入了解JavaScript模块引入方式,应用场景剖析
require与import各自优势与劣势。requireimport优势简单直接,适用于Node.js环境支持异步加载,更灵活,适用于现代JavaScript环境劣势同步加载可能导致性能问题,不够灵活语法相对复杂,可能需要编译工具我们可以根据项目需求选择合适的模块引入方式。在选择模块引入方式时,需要考虑项目的特点和需求。对于Node.js项目或传统的服务器端应用,使用require可能是更合适的选择。而在现代JavaScript项目或前端开发中,推荐使用import。原创 2024-01-12 10:09:29 · 873 阅读 · 0 评论 -
小结:利用PostMessage实现Web中的跨文档通信
本周开发项目时,做了一个技术小结,帮助快速理解 & 使用 PostMessage。是通信API,它允许不同窗口之间进行跨文档通信,包括同源和跨源的通信。原创 2024-01-08 11:26:21 · 613 阅读 · 0 评论 -
开箱秘籍,一招鲜吃遍天的Object.prototype.toString.call
面试官见了也给赞同,一招鲜吃遍天,最可靠的数据类型判断Object.prototype.toString.call原创 2024-01-05 10:03:50 · 1024 阅读 · 0 评论 -
Object.assign 这算是深拷贝吗
可以复制对象的属性,但它只能进行浅拷贝(shallow copy)。这意味着如果对象中的属性是对象或数组,那么拷贝的只是引用,而不是创建新的对象。因此,对于嵌套的对象或数组,更改拷贝后的对象会影响原始对象。希望本文带给您有价值的信息。方法用于将一个或多个源对象的属性复制到目标对象,并返回目标对象。当目标对象和源对象具有相同的属性时,后面的源对象将覆盖前面的源对象的属性。因此,如果你需要进行深拷贝而不仅仅是浅拷贝,你需要使用其他的方法,如使用递归或第三方库来实现深度复制。在上面的示例中,对拷贝后的对象。原创 2023-12-27 10:22:07 · 609 阅读 · 0 评论 -
前端性能优化策略与实践
你还有更好的办法吗?评论去一起讨论下。原创 2023-12-25 10:44:07 · 656 阅读 · 0 评论 -
JavaScript语法新特性与实用技巧
JavaScript是一门快速演进的编程语言,引入了许多新的特性和语法糖,以提高代码的可读性和开发效率。以下是一些现代JavaScript中常见的新特性和实用技巧。原创 2023-12-22 10:10:24 · 503 阅读 · 0 评论 -
深入了解JavaScript的hasOwnProperty方法
JavaScrip编程语言,提供了各种方法和属性来操作对象。其中一个与对象操作密切相关的关键方法是。这个方法。在本文中,我们将深入探讨的细节并探索其用法。原创 2023-12-13 18:11:46 · 634 阅读 · 0 评论 -
处理JavaScript浮点数误差的方法
在JavaScript中,浮点数误差是一个常见但容易被忽视的问题。当进行浮点数计算时,由于二进制浮点数的有限表示,可能会导致一些不精确的结果。本文将介绍浮点数误差的原因,并提供一种处理方法,即使用整数进行计算。原创 2023-12-12 19:06:16 · 422 阅读 · 0 评论