使用JS简单实现一下apply、call和bind方法
文章介绍了 JavaScript 中 apply、call 和 bind 方法,apply 以数组形式传参,call 以参数列表传参,两者用于函数调用时绑定 this 值,bind 会返回新函数并处理参数合并。还讲解了这三个方法的自定义实现及测试示例。 关联问题: apply和call区别在哪 bind如何合并参数 怎样实现bind方法 1.方法介绍 apply、call和bind都是系统提供给我们的内置方法,每个函数都可以使用这三种方...
事件循环 Event Loop事件循环
事件循环 同步任务(立即执行) 如console.log()、new Promise 宏任务主要包含:script(整体代码)、setTimeout、setInterval、I/O、UI 交互事件、setImmediate(Node.js 环境) 微任务主要包含:Promise的then函数和catch函数、MutaionObserver、process.nextTick(Node.js 环境) 练习,快来试试 结果及简单分析 详细分析...
前端中的 File 和 Blob两个对象到底有什么不同❓❓
JavaScript 在处理文件、二进制数据和数据转换时,提供了一系列的 API 和对象,比如 File、Blob、FileReader、ArrayBuffer、Base64、Object URL 和 DataURL。每个概念在不同场景中都有重要作用。下面的内容我们将会详细学习每个概念及其在实际应用中的用法。 接下来的内容中我们将来了解 File和 Blob 这两个对象。 blob 在 JavaScript 中,Blob(Binary...
闭包和内存泄漏,这次我终于答上来了
正文 要了解闭包,我们需要先了解词法作用域和作用域链。 词法作用域 在编程语言中,变量和函数的作用域是由其在源代码中的位置决定的。也就是说,在变量和函数被声明的时候其作用域已经确定了。当在函数中访问外部变量时,不论函数运行在哪里,访问的变量始终是其作用域中的那个变量。 例如,我们在这里声明了 变量和 函数,在函数中打印该变量,再将函数导出。如果我们在其他地方引入 并运行,则依旧会打印 。听起来似乎和我们平时开发时的行为是一致的?没错,在...
Js的预编译你了解多少呢?
预编译 预编译 是指在程序运行之前,先对程序进行一些处理,例如预处理、编译、链接等,以便提高程序运行效率和减少运行时的错误。 编译的 作用 :提高程序的 效率和稳定性 ,减少程序在运行过程中可能出现的错误,并提高程序的 可维护性 和 可扩展性 。 作用域 作用域是函数身上的属性 \[\[scope\]\] (给js引擎访问的,我们拿不到 隐式属性 ),用于存储函数中的 有效标识符 。 作用域链 作用域是执行期上下文对象的集合,这种集合呈...
JSON 的键为什么必须有引号?
00\. 写作背景 如题, 为什么 JSON 的键被设计为必须有引号 ? 但是,问题无厘头,不代表无意义。Vite 源码的 pnpm 配置使用了一种 YAML 格式的配置文件,很多工具和语言也支持 YAML。 举个栗子,这是格式化工具 Prettier 官网的示例: 粉丝请注意,YAML 和 JSON 一龙一猪, 键名真的可以没引号 !那么,强制要求键名加引号、而且必须是双引号的 JSON 到底在搞什么飞机? 有时候,乍一看是几何题,其...
Web Worker知道吧?怎么动态的创建Web Worker呢
前言 浏览器是一个多进程多线程的架构,以 为例,每一个 页都是一个单独的渲染进程。在这个渲染进程下,有 执行线程和渲染线程。 执行线程与渲染线程是互斥的,这就导致了我们在执行一些长任务的时候,会阻塞渲染线程,具体的表现可能有: 1. 动画卡顿 2. 点击按钮/输入框输入没反应等等 在 中,浏览器提出了 这种技术,它允许在主线程之外运行脚本,这样就可以在后台执行一些耗时的任务,而不会阻塞 执行线程,从而提高了 应用的性能和响应性。 web...
原来vue3中template使用ref无需.value是因为这个
本文是 的第 15 篇,和该系列的其他文章一起服用效果更佳。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 众所周知,vue3的template中使用ref变量无需使用 。还可以在事件处理器中进行赋值操作时,无需使用 就可以直接修改ref变量的值,比如: 。你猜vue是在编译时就已经在代码中生成了 ,还是运行时使用Proxy拦截的方式去实现的...
Vue v-for 进阶指南:in 与 of 的区别及应用场景
在 开发中, 是我们用来遍历数组、对象或其他数据结构的核心指令。然而,很多开发者可能忽略了其中的一个细微差别: 和 。这两个关键字看似相似,但却有各自不同的使用场景和适用数据类型。理解它们的区别,可以帮助我们编写更简洁、高效的代码。 本文将详细探讨 中的 和 ,并讲解它们各自的适用场景,帮助你在 项目中做出最佳选择。 什么是 ? 是 提供的用于遍历数据的指令,它可以帮助你快速渲染列表、表格等动态生成的内容。在使用 时,我们通常需要遍历一...