- 博客(66)
- 资源 (2)
- 收藏
- 关注
原创 vue2的指令和过滤器
vue2 内部会检查指令的定义,并在相应的生命周期钩子中调用指令的钩子函数。:vue2 内部会在处理模板时识别过滤器,并在双花括号插值表达式中调用过滤器函数。过滤器函数接收一个参数,即原始数据,并返回格式化后的数据。vue2 允许开发者创建自定义指令和过滤器,这些自定义元素可以扩展 Vue 框架的功能。通过自定义指令和过滤器,vue2 提供了强大的扩展能力,允许开发者根据需求定制框架的行为和功能。该函数接受两个参数:指令的名称和指令的定义对象。这些钩子函数会在指令的生命周期中特定的时候被调用。
2024-09-26 10:29:28
448
原创 vue2的事件和插槽
vue2 的事件系统是基于原生 JavaScript 的事件模型,并且提供了一些增强的功能来简化事件处理。它允许你将模板内容插入到组件的指定位置,从而实现组件的复用和扩展。插槽和事件系统是 vue2 的重要组成部分,它们提供了组件化的灵活性和复用性,使得构建复杂的单页应用变得更加容易。这个对象包含了事件的详细信息,如事件类型、目标元素、是否被阻止等。作用域插槽允许你向插槽传递数据,并且可以在插槽内部使用这些数据。属性来绑定一个作用域变量,这个变量可以访问到具名插槽内的数据。元素会被插入到相应的插槽位置。
2024-09-25 14:18:29
539
原创 vue2中的虚拟DOM与diff算法详解
当数据变化时,vue2会生成一个新的虚拟DOM树,并与旧的树进行比较,这个过程称为diff。这两者的结合大大提升了DOM操作的效率,减少了不必要的DOM操作,从而提高了应用的性能。vue2的diff算法采用了双端比较的策略,从新旧节点的两端开始比较,这样可以快速地处理大部分相同的前置和后置节点。虚拟DOM的优势在于其轻量级和可预测性,使得vue2能够在不直接操作DOM的情况下,通过比较和计算得出最小的更新范围。函数则是diff算法中最复杂的一部分,它负责比较和更新子节点,尽可能复用已有的DOM元素。
2024-09-24 09:38:03
521
原创 vue2响应式系统之处理大量数据
分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。不过,如果数据量实在太大,可能需要考虑使用Web Workers或其他后端服务来处理数据,以减轻前端的负担。对于长列表数据,可以使用虚拟滚动(也称为窗口化或无限滚动)技术,只渲染可视区域内的元素。例如,可以使用方法代替计算属性,如果该方法不依赖于响应式数据。如果可能,可以将大量数据分批处理,只在需要时将其转换为响应式。对于大量数据,可以使用分页或无限加载技术,每次只加载一部分数据。使用Vue的性能监控工具,如。
2024-09-19 13:23:34
566
原创 vue2响应式系统之处理异步更新
分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。当侦测到数据变化时,Vue不会立即更新DOM,而是将更新操作推送到一个队列中。当事件循环结束,Vue会执行队列中的所有更新操作,这样就可以批量执行DOM更新,减少页面重绘和重排的次数,提高性能。这使得Vue的DOM更新可以在当前JavaScript事件循环的末尾进行,确保所有的数据变化都已经处理。在所有更新完成后,需要重置队列状态,以便于下一个事件循环的处理。,可以在回调函数中执行依赖于DOM的操作。
2024-09-14 10:34:56
578
原创 vue2响应式系统是如何实现的(手写)
每个属性都有一个或多个“观察者”(Watcher),当属性值发生变化时,Vue会通知所有依赖于该属性的观察者。为了解决这些限制,Vue 3引入了基于Proxy的响应式系统,它解决了上述许多问题,例如对属性的动态添加和删除、更好的性能以及原生支持。:基本数据类型(如字符串、数字、布尔值)是响应式的,但它们是不可变的,这意味着你不能通过直接修改它们来触发更新。:Vue的响应式系统可以自动侦测嵌套对象或数组的变化,但如果数据结构非常深,性能可能会受到影响。,这意味着它只能侦测属性的变化,而不是对象或数组的变化。
2024-09-13 10:33:28
901
1
原创 仅1%知道的vue2隐藏知识点
在实际开发中,大多数生产环境下的 Vue 应用都采用预编译的方式,以优化性能和减小最终部署的文件大小。运行时编译模板和预编译是 Vue.js 处理模板的两种不同方式,它们在性能、构建流程和适用场景上有所区别。:由于编译过程发生在浏览器中,因此会占用更多的客户端资源,可能会导致较慢的首屏加载时间。运行时编译模板是指在浏览器中,Vue.js 实例化时对模板字符串进行即时编译的过程。:预编译可以减少运行时的计算量,加快首屏加载速度,因为浏览器不需要再进行模板编译。:预编译通常性能更优,因为它减少了运行时的计算。
2024-09-10 09:22:34
668
原创 vue2实例创建为什么使用new
分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。:Vue构造函数内部会执行一系列初始化操作,比如设置数据响应式、编译模板、挂载DOM等,这些都是通过构造函数的执行来完成的。如果构造函数没有显式返回一个对象,则返回这个新创建的对象,即Vue实例。关键字,是因为Vue本身是一个构造函数(或者说是类,在ES6中可以用。指向的是新创建的实例,这样就可以在构造函数内部为实例添加属性和方法。的上下文绑定到Vue构造函数上,并执行构造函数的代码,初始化实例。
2024-09-06 09:30:18
584
原创 vue2中options都有哪些属性
在 Vue 2 中,组件的选项(Options)是一个对象,它包含了定义组件行为和特性的各种配置项。分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。计算属性是基于它们的响应式依赖进行缓存的,只有当依赖项发生变化时,它们才会重新计算。: 包含组件的方法对象。: 包含组件接收的 Prop 对象的数组。: 包含子组件的注册对象的数组。这些组件可以在模板中作为其他组件的子组件使用。: 包含组件的注册对象的数组。函数会被调用,并返回一个对象,这个对象中的数据是响应式的。
2024-09-04 09:24:20
1168
原创 你不知道的Vue2源码执行路线
分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。这个方法会比较新旧虚拟 DOM,并只对变更的部分进行实际的 DOM 操作。生命周期钩子,在这个钩子函数中,组件的 DOM 已经更新,可以执行依赖于 DOM 的操作。生命周期钩子,在这个钩子函数中,组件已经挂载到 DOM 上,所有指令已绑定到元素。生命周期钩子,在这个钩子函数中,组件实例刚刚完成初始化,挂载尚未开始。实例的一个方法,用于在 DOM 更新之前执行一些操作。实例的一个方法,用于执行实际的 DOM 更新操作。
2024-09-03 12:17:52
542
原创 try里面放return,finally还会执行吗?
实验结果表明,无论是在JavaScript的浏览器环境还是Node环境,finally块中的return确实会覆盖try块中的return。今天,在与同事讨论编程语言特性时,我们谈到了一个有趣的话题:在JavaScript中,finally块中的return语句是否会覆盖try块中的return。文章指出,在JavaScript中,finally中的return会“覆盖”try中的return,这在函数中实现了两次return,这与许多人的常规认知相悖,在其他编程语言中也是一种罕见的行为。
2024-09-02 09:13:04
428
原创 七夕-又到了在女朋友面前秀技术的时刻
欢迎关注【牛马圈】,专注于技术知识分享的宝藏公众号!分享解决方案、高效工具,以及独家项目源码。有任何技术问题,都可添加我的微信好友,共同探讨交流。分享的资源在小程序里,需要观看广告后获取,如不喜欢这种方式,也可添加我的微信好友直接获取。希望持续关注,持续受益。情侣转盘小游戏是一款充满趣味与互动的桌面游戏,专为情侣或亲密关系中的双方设计。游戏以增进感情、了解彼此为宗旨,通过轻松愉快的游戏氛围,让双方在游戏中感受爱情的甜蜜与温馨。源码在小程序搜“转盘小游戏”自行获取。你认为爱情需要经营吗?
2024-08-09 09:22:51
329
1
原创 七夕拿什么秀技术
手持弹幕小程序作为一种创新的互动方式,在表达爱意方面拥有独特的魅力和效果.视觉冲击,创意表达,最主要是秀技术啊!源码在小程序搜“手持弹幕”自行获取,迢迢牵牛星,皎皎河汉女。
2024-08-08 14:23:31
245
原创 Nodejs搭建前端服务框架模板
使用Node.js作为服务器端运行环境,Koa作为轻量级的Web框架,提供高效的中间件机制。使用jwt-simple (JWT)实现身份验证,确保安全性和用户身份的一致性。使用Koa CORS中间件处理跨域请求,确保前端可以安全地访问后端服务。如何使用Node.js、Koa和MySQL构建一个强大的前端服务框架。通过集成日志管理工具,记录关键事件和错误,以便更好地监控和排除问题。封装统一的返回对象,包含成功标志和数据,提高代码的可维护性和一致性。: 作为关系型数据库,用于数据存储和检索。
2024-08-07 12:34:20
473
原创 壁纸头像小程序uniapp版(附源码)
资源都放在小程序里,小程序已完成重构,可自行搜索并获取下载地址,如有任何技术问题,可在公众号联系我,壁纸头像类小程序是最热门的小程序类型之一,也是个人开通流量主的最佳选择。壁纸全屏预览,模拟锁屏样式。banner、激励、插屏。header及卡位渐变色。
2024-08-06 15:08:39
689
1
原创 手把手教你打造Vue2项目中的自定义折叠组件
在现代前端项目中,折叠组件广泛应用于导航菜单、内容展示等场景。Vue2作为一款流行的前端框架,提供了丰富的组件化开发能力。本文将介绍如何在Vue2项目中自定义一个折叠组件。本文将带领大家了解如何在Vue2项目中创建一个自定义折叠组件,通过本文的学习,你将掌握组件的基本原理和实现方法,为项目增添更多交互性。小时候觉得5块钱很贵,10点很晚,一生很长,生活却很甜。长大后才发现,100块钱不够花,12点也不是很晚,一生很短,却异常苦涩!创建一个Vue2项目,并进入项目目录。不怕前端实现不了,就怕产品设计不好。
2024-08-06 15:07:52
566
1
原创 Vue2常用的组件通信方式有几种
通过创建一个事件总线(Event Bus)来实现兄弟组件之间的通信。通过在父组件中使用属性(Props)传递数据给子组件。使用 Vuex 管理全局状态,实现任意组件之间的通信。提供和注入属性来实现祖先和后代之间的通信。3. 兄弟组件通信(Event Bus)触发自定义事件,父组件监听并响应。1. 父子组件通信(Props)2. 子父组件通信($emit)Vue2 组件通信方式详解。4. Vuex 状态管理。
2024-05-21 09:13:13
525
原创 Vue2生命周期的这些细节你都知道吗?
每个阶段又包含了不同的生命周期钩子函数,通过这些钩子函数,我们可以在Vue实例的不同阶段添加自己的代码,实现特定的功能。加载渲染过程:父 beforeCreate -> 父 created -> 父 beforeMount -> 子 beforeCreate -> 子 created -> 子 beforeMount -> 子 mounted -> 父 mounted。调用此钩子时,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。适用于在现有DOM应用更改之前访问它。
2024-05-08 09:04:23
716
原创 Vue2源码学习路径
父子组件之间的通信是通过 props 和 $emit 来实现的,兄弟组件之间的通信是通过事件总线或 Vuex 来实现的,祖孙组件之间的通信是通过 provide 和 inject 来实现的。其中,Vue 实例是整个框架的核心,它提供了一个响应式的数据绑定机制,使得我们可以将数据和视图绑定在一起,从而实现数据驱动的前端应用。Vue.js 2.x 的异步组件可以延迟组件的加载,从而提高应用的性能。其中,组件的生命周期钩子是非常重要的,它可以帮助我们在组件的不同阶段执行一些逻辑,从而实现更加复杂的交互。
2024-04-25 09:13:24
999
2
原创 22种数组操作方法 你知道几个?
a.当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。1、功能和 reduce功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。添加或删除数组中的元素,返回新数组,改变原数组,howmany为0时不删除,item为空时不替换。1、创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。1、返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
2024-04-24 09:57:19
579
原创 10种常用的JS数组循环及其应用场景
为了遍历数组中的元素,我们可以使用不同的循环方式。方法接受一个回调函数作为参数,该回调函数会对原始数组中的每个元素进行操作,并返回一个新的值。循环是ES6引入的一种新的循环方式,它允许我们以更简洁的方式遍历可迭代对象(包括数组)的元素。方法是数组的一个内置方法,它会创建一个新数组,其中的每个元素都是原始数组经过某种操作后的结果。是数组的一个内置方法,它提供了一种简洁的方式来遍历数组的每个元素,并对每个元素执行回调函数。方法是数组的一个内置方法,它通过迭代数组的每个元素,并将其累积到一个最终的值中。
2024-04-23 09:02:15
1612
原创 JavaScript之模块化规范详解
这些模块化规范在不同的环境中有不同的应用场景和用法。UMD兼容AMD和CommonJS规范,并根据当前环境自动选择合适的模块化方式。分享3:AI资料大全,仅分享,不做购买推荐,有需要的自行获取(回复 AI)。UMD是一种通用的模块化规范,可以在多种环境中使用,包括浏览器和服务器。ES6引入了原生的模块化支持,成为JavaScript的官方模块化规范。CMD是由国内开发者提出的一种模块化规范,与CommonJS类似。UMD是通用的模块化规范,根据当前环境选择合适的模块化方式。
2024-04-22 09:09:12
1819
3
原创 JavaScript对象属性可枚举性详解
可枚举性在 JavaScript 中是一个重要的概念,它影响着属性的遍历和序列化行为。通过合理地设置属性的可枚举性,可以更好地控制对象的行为,使其更符合实际需求。在 JavaScript 中,对象的属性分为可枚举和不可枚举两种,这涉及到对象属性遍历、序列化等方面的行为。大多数对象的属性默认是可枚举的,但也有例外,如原型链上的属性默认是不可枚举的。不会被遍历到,更适合存储一些内部使用的属性,避免意外的外部访问和修改。不可枚举属性是指无法通过对象的属性遍历方法访问到的属性。这两者只会枚举可枚举的属性。
2024-04-19 11:22:30
1267
原创 JavaScript之异步编程详解(二)
ta是实现异步编程的核心,负责管理和调度 JavaScript 代码中的任务执行顺序,确保在单线程的环境下能够处理并发的任务。由于只有一个线程,所以一次只能执行一个任务,如果某个任务阻塞了主线程,那么其他任务就无法执行,会导致页面失去响应。在 Event Loop 的执行过程中,首先执行所有的微任务,然后再执行宏任务。通过调用栈、任务队列和微任务队列的协作,保证了代码的执行顺序和协调了异步任务的回调函数。执行微任务:执行所有微任务队列中的任务,直到微任务队列为空。微任务会在当前宏任务执行结束后立即执行。
2024-04-18 09:00:44
559
原创 JavaScript之异步编程详解(一)
以上是实现异步编程的四种常见方式:回调函数、Promise、async/await和Generator。通过将一个函数作为参数传递给另一个函数,在异步任务完成后调用该函数来处理结果。async/await是ES8引入的一种基于Promise的异步编程方式,它使用起来更加简洁明了。Promise是ES6引入的一种更为优雅的异步编程方式。分享3:AI资料大全,仅分享,不做购买推荐,有需要的自行获取(回复 AI)。容易造成回调地狱,即多层嵌套的回调函数,难以维护和扩展。可以实现暂停和恢复执行的功能,灵活性较高。
2024-04-17 09:05:06
2318
原创 JavaScript之函数详解
今天说一下绍构造函数、普通函数、匿名函数、箭头函数、类及类中定义的方法、以及自执行函数。今天分享,AI资料大全,仅分享,不做购买推荐,有需要的自行获取(回复 AI)。优点:确保方法内部的 this 指向,避免因为函数嵌套导致的 this。箭头函数是 ES6 引入的新语法,具有更简洁的语法和固定的。优点:可以通过构造函数初始化对象,实现对象的复用。简单的函数定义,尤其在需要固定 this 指向时。缺点:无法作为构造函数使用,没有自己的 this。作为某些函数的参数,或者在需要时即时定义和执行。
2024-04-16 09:04:44
549
原创 JavaScript之Proxy详解
是JavaScript中的一个强大而灵活的特性,它允许你创建一个代理对象,可以拦截并改变对象的底层操作。是ES6引入的一个新对象,用于创建一个对象的代理,可以拦截并重定义基本的操作。提供了丰富的拦截操作,使得我们能够对对象的行为进行灵活的定制。可以实现对象属性的懒加载,只在访问时才进行实际的计算或获取。能够实现更清晰和易读的代码,避免了传统的一些hack手段。的特性和应用场景,有助于更好地利用它提供的强大功能。是ES6引入的特性,不支持ES6的环境无法使用。可以实现数据绑定,监听对象属性的变化。
2024-04-15 09:12:52
2324
1
原创 JavaScript中的Blob、Buffer、ArrayBuffer和TypedArray详解
摘要:本文详细介绍了JavaScript中的Blob、Buffer、ArrayBuffer和TypedArray,这些类型和API在处理二进制数据时非常有用。综上所述,Blob适用于处理文件和媒体内容,Buffer适用于Node.js环境下的二进制数据处理,ArrayBuffer和TypedArray适用于通用的二进制数据操作。TypedArray可以直接读取和写入ArrayBuffer中的数据,并提供了一些额外的方法和属性。ArrayBuffer是一种用于表示通用的固定长度的二进制数据缓冲区的类型。
2024-04-13 14:40:23
733
原创 JavaScript之Object.defineProperty详解
它允许我们精确地控制对象属性的特性,包括可枚举性、可写性、可配置性等。描述符对象是一个普通的 JavaScript 对象,它有一些可选的键值对,用于定义属性的特性。当需要定义一些特殊属性,比如不可写、不可配置、不可枚举等时,可以使用该方法。当需要对属性进行精确的特性定制时,比如定义计算属性、阻止属性被遍历等。允许我们精确地控制属性的各种特性,包括可写性、可枚举性、可配置性等。可以通过设定属性为不可写、不可配置,防止对属性的误操作。:属性的描述符对象,包含属性的特性。:要定义或修改的属性的名称。
2024-04-12 09:11:28
838
原创 JavaScript处理异步循环的技术详解
当需要按照顺序执行异步任务,且任务之间有依赖关系时,使用async/await结合Promise是一个强大的选择。在异步循环中,要考虑适当的错误处理机制,以确保能够捕获和处理每个异步任务可能抛出的异常。当需要按照特定顺序执行异步任务,且任务之间有依赖关系时,递归是一个清晰的解决方案。在大规模数据的情况下,可以考虑分批处理数据,以避免同时处理大量异步任务导致性能下降。并行执行异步任务,提高性能,适用于任务之间相互独立的场景。考虑循环的性质和异步任务之间的关系,选择适当的处理方式。
2024-04-11 09:09:14
1689
原创 JavaScript异步操作详解
这些都是常见的异步编程方式,选择其中之一取决于项目的要求和个人偏好。在现代JavaScript中,Promise和async/await是更常用的选择,因为它们提供了更清晰、可读性更好的代码结构。异步操作允许在执行其他任务的同时执行耗时操作,当任务完成时,通过回调函数、Promise、async/await或事件监听来处理结果。async/await是ES2017引入的语法糖,使异步代码看起来更像同步代码,更易于理解。JavaScript中的异步操作,通常指的是那些不会阻塞代码执行的操作。
2024-04-10 09:14:21
560
原创 JavaScript中如何理解堆栈溢出和内存泄漏
在 JavaScript 中,内存泄漏通常是因为对不再需要的对象仍然存在引用,使得这些对象不能被垃圾回收。JavaScript 引擎使用调用栈来追踪函数的调用关系,堆栈溢出是指当递归调用或函数调用过多层次时,JavaScript引擎的调用栈空间耗尽,导致程序崩溃。如果该元素在后续操作中被删除,这个匿名函数依然存在,导致元素引用不被释放,从而发生内存泄漏。在JavaScript中,堆栈溢出和内存泄漏是两种常见的内存管理问题,它们可能导致程序性能下降、崩溃或其他不稳定的行为。使用递归时确保有终止条件。
2024-04-09 09:05:31
713
原创 JavaScript之作用域链详解
作用域链是由变量对象的列表组成,这些变量对象按照它们被创建的顺序排列。本文将详细介绍JavaScript作用域链,包括什么是作用域链、作用域链的创建过程、作用域链的查找规则以及相关的代码示例。通过深入了解作用域链的创建过程和查找规则,我们能更好地理解JavaScript代码的执行过程,尤其是在涉及嵌套函数和闭包的情况下。:作用域链的顶端是当前执行上下文的变量对象,然后依次链接到父级执行上下文的变量对象,直至全局执行上下文。闭包是指在一个函数内部定义的函数,它可以访问外部函数的变量,形成一个闭包作用域链。
2024-04-07 20:59:33
834
原创 JavaScript之闭包的实现原理和作用详解
这个内部函数可以访问外部函数的变量,因为它维持了对外部函数变量对象的引用。闭包是JavaScript中强大而灵活的概念,它不仅可以解决作用域的问题,还能够实现函数式编程的一些特性。本文将详细解释JavaScript闭包的实现原理和作用,包括什么是闭包、闭包的实现原理、闭包的作用以及具体的代码示例。闭包是JavaScript中一项强大的特性,它通过保留外部函数的变量对象,使得内部函数可以访问和操作外部函数的变量。是指在一个函数内部定义的函数,并且这个内部函数可以访问外部函数的变量。2. 闭包的实现原理。
2024-04-06 10:46:10
355
原创 JavaScript之this详解
的不同绑定规则是编写高质量JavaScript代码的重要一步。通过掌握这些规则,可以更好地设计和组织代码,确保。的不同绑定规则,包括默认绑定、隐式绑定、显式绑定、new 绑定以及箭头函数中的。是一个关键字,表示当前执行代码的上下文。的指向可能会出现问题,特别是在异步操作或事件处理中。箭头函数继承自最近的外围非箭头函数作用域的。在全局作用域中或函数内部,当没有明确指定。方法,可以显式指定函数执行时的。的值可能会丢失或产生意外的结果。当函数作为对象的方法被调用时,指向调用该方法的对象。**:在回调函数中,
2024-04-05 10:46:32
224
原创 JavaScript之applye、bind和call方法详解
apply()、bind()和call()方法的作用都是改变this指向,可以指定该函数内部this的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。apply()和call()立即执行,bind()返回新函数,并非立即执行。Q1 apply()、bind()和call()方法的区别在哪?Q3 apply()、bind()和call()方法手写实现逻辑。Q2 apply()和call()的应用场景。将数组的空元素变为undefined。apply()的参数为数组。
2024-04-04 17:17:31
662
原创 JavaScript变量对象详解
JavaScript中的变量对象是理解作用域、作用域链和变量声明提升的关键概念之一。通过了解变量对象的结构、创建过程和与作用域链的关系,我们能更好地理解JavaScript代码的执行过程。在JavaScript中,变量对象是执行上下文中的一个重要概念,它负责存储函数中的变量、函数声明和形参。变量对象是在执行上下文创建阶段被创建的,用于存储该上下文中的变量、函数声明和形参。不同类型的上下文(全局上下文、函数上下文)有不同的变量对象。作用域链是由当前执行上下文的变量对象和其父级执行上下文的变量对象组成的。
2024-04-03 09:02:25
654
原创 JavaScript执行上下文详解
每当执行一段可执行代码(例如函数、全局代码)时,就会进入一个新的执行上下文。执行上下文是JavaScript中一个关键的概念,它定义了代码在运行时的环境和范围。了解执行上下文对于理解变量的作用域、作用域链以及代码的执行顺序至关重要。全局执行上下文是默认的、最外层的执行上下文。每当调用一个函数时,都会创建一个新的函数执行上下文。函数执行的代码会在一个新的执行上下文中运行,被称为Eval执行上下文。函数执行时,会创建函数执行上下文,其中包括全局变量和局部变量。:在函数上下文中,执行函数体内的代码。
2024-04-02 13:25:16
423
原创 JavaScript作用域详解
JavaScript 的作用域(Scope)是指在代码中定义变量时,这些变量在哪里以及在哪些地方可以被访问。在 JavaScript 中,有全局作用域和局部作用域的概念,作用域的规则由函数定义和代码块定义来决定。词法作用域是指变量的作用域在代码写好的时候就确定了,而不是在运行时确定。作用域是 JavaScript 中重要的概念,理解作用域有助于正确使用变量、避免命名冲突,提高代码的可维护性。作用域可分为词法作用域和动态作用域,JavaScript 使用词法作用域,也称为静态作用域。
2024-04-01 17:29:38
278
基于uniApp技术栈的壁纸、头像类小程序源码
2024-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人