
Javascript入门到进阶
文章平均质量分 73
《JavaScript从入门到进阶》专栏系统讲解JavaScript语言精髓,覆盖基础语法、DOM操作、异步编程、ES6+新特性等核心内容,逐步深入原型链、闭包、设计模式等进阶知识。剖析事件循环、内存管理等底层原理,适合零基础小白建立完整知识体系,帮助中级开发者突破瓶颈,解锁全栈开发能力。
头脑旋风
前华为云计算AIGC工程师,把代码当兴趣,把职位当爱好
展开
-
为什么大厂都禁止在JavaScript中使用==操作符?
禁用==的核心目的是通过减少隐式行为提升代码的健壮性和可维护性。对于大型项目,这种规范能显著降低因类型转换引发的潜在风险,符合工程化实践中的“防御性编程”原则。原创 2025-03-09 14:56:59 · 98 阅读 · 0 评论 -
什么是requestIdleCallback?
是浏览器提供的一个 API,用于在浏览器空闲时执行低优先级的任务,避免阻塞主线程,从而提升页面的性能和响应速度。它通常用于执行一些不需要立即完成的工作,比如日志记录、数据分析、渲染优化等。在现代浏览器中得到较好支持,但在不支持的环境中,可以通过。,可以显著提升前端应用的性能和用户体验。以下是一个简单的示例,展示了如何使用。原创 2025-02-28 12:50:53 · 317 阅读 · 0 评论 -
async/await 函数如何使用 try catch ?
如果需要对异步操作中的错误进行特定处理,比如显示错误提示、记录日志或进行降级处理,则必须使用。如果在同一个函数中有多个可能抛出错误的异步操作,并且需要对每个操作进行单独处理,可以使用多个。如果当前函数不需要处理错误,可以将错误抛出,由调用方捕获。如果异步操作可能抛出未处理的错误,且这些错误会导致应用程序崩溃,使用。如果函数本身不需要处理错误,而是将错误抛出,由调用方捕获,则可以省略。,而在不需要处理错误时,可以将错误抛出或使用全局错误处理器。对于未捕获的错误,可以使用全局错误处理器(如。原创 2025-02-28 12:37:50 · 73 阅读 · 0 评论 -
Javascript中的MVC架构,完整代码示例
MVC 是一种经典的设计模式,适用于复杂的 JavaScript 应用。通过将代码划分为模型、视图和控制器,开发者可以更好地组织代码,并提高应用程序的可维护性和可扩展性。MVC 的核心思想是将数据、界面和逻辑分离,使代码更易维护和扩展。JavaScript 中的。原创 2025-02-28 12:29:46 · 54 阅读 · 0 评论 -
JavaScript的this指向,一次彻底讲清楚
的指向规则是理解 JavaScript 编程的关键之一。通过练习和实际项目经验,你将逐渐熟悉这些规则并灵活运用。指向是一个非常重要且容易混淆的概念。它的值取决于函数被调用的上下文,而不是函数定义的位置。在非严格模式下,如果函数是直接调用(而不是作为对象的方法或构造函数等),如果一个函数是作为对象的方法调用的,默认指向全局对象(在浏览器中是。JavaScript 中的。,在 Node.js 中是。在 DOM 事件处理函数中,会返回一个新函数,并将。指向全局对象,全局变量。,也就是定义时的上下文。原创 2025-02-28 12:22:35 · 126 阅读 · 0 评论 -
为什么setTimeout(setInterval)不精确?如何解决?
虽然JavaScript的setTimeout使用递归setTimeout来动态调整超时延迟。如果任务涉及动画,使用。使用多次检查和调整延迟来减少误差。在复杂计算任务中使用来避免主线程阻塞(推荐,既不受主线程的影响也不受渲染帧的影响)。原创 2024-12-17 15:20:50 · 1441 阅读 · 0 评论 -
带走吧,这7种整理好的代码块
日常开发中,我们经常会用到很多通用的 JS 代码,比如:复制内容、从 URL 中获取指定参数 等原创 2024-12-17 19:10:05 · 340 阅读 · 0 评论 -
前端程序员必须知道的10个JavaScript概念
解构允许将数组或对象的值解包到变量中,从而使代码更简洁。无论你是使用闭包、处理异步操作还是使用模块组织代码,这些概念都是现代 JavaScript 开发的基础。JavaScript 是最流行的编程语言之一,掌握它对于任何开发人员来说都是必不可少的。概念将使您成为更高效的开发人员,并允许你编写更干净、更优化的代码。它们允许更抽象、可重用和更灵活的代码。是单线程的,因此它使用事件循环来处理异步任务,如。中最强大的功能之一,允许私有变量和函数。概念,以便编写更简洁、更高效的代码。和事件侦听器,而不会阻塞主线程。原创 2024-12-17 16:18:47 · 643 阅读 · 0 评论 -
JavaScript 高级技巧
介绍了 10 个高级 JavaScript 技巧,包括解构赋值、Currying、防抖与节流、记忆化、代理对象、生成器、控制台使用、结构化克隆、自执行函数和标记模板字符串,旨在提高开发效率和代码质量。JavaScript 是一种功能强大的语言,拥有许多隐藏的功能,可以使你的开发过程更高效,代码更整洁。记忆化可以将低效、重复的计算转换为可管理的线性时间的操作,使其成为优化性能密集型任务的关键技术。使用原因:通过确保函数在受控的间隔内被调用,以防止性能问题,减轻浏览器负载,并提供更好的用户体验。原创 2024-12-20 16:38:53 · 1056 阅读 · 0 评论 -
ES2024新鲜出炉的功能
一些方便的数组操作方法被添加到规范中。这些特性可以帮助我们编写更清晰、更高效的代码,不过,建议在使用这些新特性时使用相应的 polyfill 或转译工具。原创 2024-12-24 16:25:02 · 211 阅读 · 0 评论 -
JavaScript 变量命名规范
var 是 ES6 之前的变量声明方式,但它容易带来作用域混乱的问题。现代 JavaScript 推荐使用let和const,它们具有块级作用域和更好的行为预测性。letconst。原创 2024-12-27 20:47:22 · 363 阅读 · 0 评论 -
你还在这样编写 async/await吗?
还记得当初的回调地狱吗?JavaScript 进化到现在,已经让我们避免了深层嵌套的回调结构。但功能变强大了,责任也跟着变大。下面是 async/await 中常见的三大“致命罪状”。原创 2024-12-30 15:52:07 · 992 阅读 · 0 评论 -
12 个高级 JavaScript 技巧,提高你的代码质量
JavaScript 带给了我们极大的自由,但也带来了一定的复杂性。为了让你的代码更高效、易于维护,下面认真分享 12个 JavaScript 的高级技巧和实用场景。原创 2025-01-04 20:13:58 · 284 阅读 · 0 评论 -
JS里的 ?? 和 || 区别
在JavaScript中,??(空值合并运算符)和||(逻辑或运算符)都可以用来处理变量值,但是切记这俩玩意不一样,是有区别的。原创 2025-01-04 20:19:04 · 288 阅读 · 0 评论 -
前端金额运算精度丢失问题及解决方案
本文对本文对 Javascript 中浮点数运算出现的精度丢失问题进行了还原,分析了问题产生的原因在于二进制本身。同时给出了三个网络上比较成熟的解决方案,其中第一和第二方案基本可以满足大部分开发场景,如果不能满足就使用类库。中浮点数运算出现的精度丢失问题进行了还原,分析了问题产生的原因在于二进制本身。同时给出了三个网络上比较成熟的解决方案,其中第一和第二方案基本可以满足大部分开发场景,如果不能满足就使用类库。最后,建议所有对运算精度要求极高的业务场景都放到后端去运算,切记。原创 2025-01-05 19:52:54 · 618 阅读 · 0 评论 -
Javascript深拷贝方法
深拷贝是指创建新对象的时候,对象拥有原始对象的所有属性的副本。浅拷贝是指创建的新对象包含有原始对象的引用。也就是说浅拷贝仅复制对象的第一层结构,而不会递归地复制嵌套的对象数据。如果仅使用浅拷贝创建对象的话,对新对象的更改,如果更改的是引用数据类型的属性时候,会改动原始对象。在实际应用中,我们期望对对象所做的修改不会影响到原对象,因此就需要使用深拷贝来复制对象。尽量使用结构化克隆 structuredClone,避免使用JSON方式。原创 2025-01-05 20:02:08 · 385 阅读 · 0 评论 -
React Hooks 基于 JS 闭包原理实现,但是闭包也会带来很多麻烦
闭包是一个函数,它从定义变量的地方(或其词法范围)捕获变量。闭包是每个 JS 开发人员都应该知道的一个重要概念。当闭包捕获过时的变量时,就会出现过时闭包的问题。解决过时闭包的一个有效方法是正确设置 React Hook 的依赖项。或者,对于过时的状态,使用函数方式更新状态。你认为闭包使得 React Hook 很难理解吗?原创 2025-01-07 14:30:13 · 1153 阅读 · 0 评论 -
JavaScript如何判断对象自身为空?
判断一个对象是否为空时,使用 Reflect.ownKeys 方法最为完美。原创 2025-01-11 14:37:56 · 303 阅读 · 0 评论 -
JavaScript 常用的8种设计模式
上述代码通过 if-else 实现计算各个方式出行的时间,代码使用上是没有问题的,但是如果计算规则很复杂,每个规则都需要一两百行代码实现,那么后续新增打车、开车等出行方式后,这个函数就会变的非常庞大,维护起来就越来越困难了。命令模式是一种将请求封装成对象,从而使得请求可以被保存、传递、取消、排队或记录的模式,通过命令模式可以将发出请求的对象和执行请求的对象解耦。策略模式是一种定义一系列算法,并将其封装在独立的策略类中,使得它们可以相互替换的模式,通过策略模式可以动态改变对象的行为。原创 2025-01-17 13:17:50 · 719 阅读 · 0 评论