- 博客(151)
- 收藏
- 关注
原创 【描述一下 V8 执行一段JS代码的过程?】
优化:在代码执行期间,V8 还可以通过一些方法进行优化,例如,动态地重编译代码以提高执行速度,以及使用 JIT(Just-In-Time)编译器来编译热点代码以提高性能。执行代码:最后,V8 执行代码。词法分析:V8 首先读取 JS 代码,并将其分解成单个的标记或词汇单元(tokens),这些 tokens 是构建语言语法的基本元素。预编译(预处理):在执行代码之前,V8 还需要执行一些预编译步骤。总的来说,V8 的执行过程可以概括为:词法分析、语法分析、预处理、执行代码和优化。
2023-10-04 18:55:23
397
原创 【Vue2和Vue3的双向绑定区别】
如果 obj 尚未被代理,则使用 Proxy 对象创建一个新的代理对象 observed,并缓存该代理对象到原始对象 obj 的 __v_proxy 属性中,并返回 observed。模板语言的改进:Vue3中提供了更加灵活的模板语法,并增加了一些新特性,例如:v-model的多个绑定值、v-model修饰符的增加、el和ref的区别等。这可以通过 Proxy 来实现。在原理上,Vue3 会为数据对象中的每个属性创建一个 Proxy 对象,并通过该对象的 get 和 set 方法来实现数据对象的双向绑定。
2023-10-03 21:01:00
1052
原创 【JS 原型对象和构造函数有何关系】
JavaScript 构造函数是一种特殊的函数,用于创建对象。它们与常规函数的区别在于,它们使用new关键字调用,并且通常用于定义对象的属性和方法。构造函数在 JavaScript 中可以用来创建自定义对象。构造函数的命名通常以大写字母开头(遵循一种约定俗成的命名规范)。通过构造函数,可以创建多个相似的对象,这些对象具有相同的属性和方法,但它们的属性值可能不同。在以上示例中,Person构造函数接受两个参数name和age。然后,构造函数创建一个名为greet的方法,该方法将在Person。
2023-10-03 20:51:45
252
原创 【什么是BigInt? 为什么需要BigInt?】
BigInt是一种数据类型,用于表示更大的整数。在JavaScript中,默认情况下,整数只能表示到2的53次方(即9007199254740992)。而BigInt可以表示更大的整数,甚至可以表示无限大的整数。
2023-10-03 20:47:10
2773
原创 【CSS 中 link 和@import 的区别】
标签的加载顺序是有影响的,后面的样式表会覆盖前面的样式表。更加实用、灵活,也更具有兼容性,推荐使用。只能被 IE5 以上版本的浏览器解释。标签之间不存在加载顺序问题,但是多个。标签可以被所有的浏览器正确解释,而。标签在页面加载时同时加载,而。标签可以放在 HTML 文档的。只能放在 CSS 文件中使用。是在页面加载后才开始加载。
2023-10-02 22:00:39
566
原创 【CSS如何实现双飞翼布局】
它的主要特点是左右两列是浮动的,中间一列使用margin负值来达到“自适应”的效果。中间的.content设置一个margin-left和margin-right,确保其在左右两侧预留200px的空间,以容纳左右两列的内容。通过上面的代码,我们得到的效果是一个完整的双飞翼布局。左右两列的宽度固定,中间的列根据页面的宽度自适应,并且不需要使用嵌套的div来实现。.left、.right设置为float:left,使其能够在文档流中脱离,并设置为固定宽度,分别为200px。
2023-10-02 21:59:49
635
原创 【CSS如何进行圣杯布局】
圣杯布局是一种经典的三栏布局,其中中间的主栏宽度自适应,两侧的边栏宽度固定。实现圣杯布局可以使用CSS中的浮动、定位、负边距等属性。这样,我们就可以实现一个基本的圣杯布局。请注意,这只是一种实现方式,还有其他方法可以实现相同的布局效果。
2023-10-02 21:59:04
426
原创 【让一个元素水平垂直居中】
使用绝对定位,将父元素的 position 属性设置为 relative,然后将子元素的 position 属性设置为 absolute,再将左侧和上方属性设置为 50%,transform 属性设置为 translate(-50%, -50%),使其水平垂直居中。使用表格布局,将父元素的 display 属性设置为 table,然后将子元素的 display 属性设置为 table-cell,使用 vertical-align 和 text-align 属性将子元素水平垂直居中。
2023-10-02 21:58:11
271
原创 【svg和canvas的区别】
SVG是一种矢量图形格式,它使用XML来描述图形,因此非常适合图形的缩放和变换。而Canvas则是一种位图技术,它使用像素来绘制图形,因此不太适合进行图形的缩放和变换。SVG可以制作复杂的图形,包括高质量的曲线、文本和渐变,Canvas则更适合制作简单的2D图形。SVG基于文档对象模型(DOM),因此可以与其他Web技术(如HTML、CSS)进行无缝集成。而Canvas则需要自己编写JavaScript代码来实现图形的交互和动画效果。SVG浏览器兼容性较好,支持较多种浏览器。
2023-10-02 21:51:05
564
原创 TCP 如何保证有效传输及拥塞控制
快重传和快恢复机制:TCP使用快重传和快恢复机制来处理丢失的数据包。如果发送方连续发送了多个数据包,但只有其中一个被接收方接收到,接收方会告诉发送方它需要缺失的数据包。如果在等待时间内收到确认响应,则发送方可以加快发送速度,直到达到网络拥塞的阈值。接收方会告诉发送方它可以接收多少数据,发送方会根据这个信息来决定发送速度。拥塞避免机制:TCP使用拥塞避免机制来避免网络拥塞。如果发送方在发送数据时遇到了网络拥塞,它会减慢发送速度,并且在一段时间之后逐渐增加发送速度,以避免网络拥塞。
2023-10-01 14:53:58
582
原创 【使用uniapp开发APP的框架思路】
了解uniapp框架:uniapp是一款跨平台开发框架,可同时支持多个平台(如iOS、Android、H5等),开发者需要通过学习uniapp框架的使用方法和特点来开发APP。了解目标平台的特点:不同平台有着不同的特点,开发者需要根据目标平台的特点来制定相应的开发策略,并保证APP在各个平台上的体验一致。选择合适的插件和组件:uniapp提供了丰富的插件和组件,开发者需要根据自己的需求选择合适的插件和组件,以提高开发效率和用户体验。审核通过之后,应用程序会被发布到应用商店中,用户可以下载和安装使用。
2023-08-31 12:14:34
588
原创 【vue3.0 组合式API与选项式API是什么,有什么区别】
是Vue.js 2.x中一直使用的API风格,它将组件的选项(如data、methods、computed、watch等)放在同一个对象中,并在组件实例创建时进行合并。开发者需要按照Vue.js的生命周期钩子函数的顺序编写,并根据需要分别处理不同的函数逻辑。开发者可以按照自己的需求组合出不同的逻辑,这样可以更灵活、更容易复用和维护,同时也让代码更易于阅读和理解。在使用上,选项式API更适合简单的组件开发和小型项目,而组合式API则更适合大型项目和复杂组件的开发。
2023-08-30 11:37:21
830
原创 【uniapp 配置启动页面隐私弹窗】
根据工业和信息化部关于开展APP侵害用户权益专项整治要求,App提交到应用市场必须满足以下条件:1.应用启动运行时需弹出隐私政策协议,说明应用采集用户数据2.应用不能强制要求用户授予权限,即不能“不给权限不让用”
2023-08-29 10:41:45
11431
原创 【vue3 组合式函数】
导入refreactive等需要使用的函数或对象。编写需要被组合的逻辑代码,例如数据处理、异步请求等。将这些逻辑代码封装在一个函数中,并返回一个包含需要使用的数据和方法的对象。在需要使用这些逻辑代码的组件中,使用setup函数来导入组合式函数并进行调用。// 定义需要被组合的逻辑代码// 发送异步请求return {data,loading,loadDatasetup() {return {data,
2023-08-28 18:12:12
803
原创 【vue3.0 引入Element Plus步骤与使用】
Element Plus 是一个基于 Vue 3.0 的 UI 组件库,它是 Element UI 的升级版。Element Plus 的设计理念是简单、易用、高效,具有良好的可定制性和扩展性。在需要使用 Element Plus 组件的地方,直接引入即可使用。以上就是在 Vue 3.0 中引入和使用 Element Plus 的步骤。可以通过 npm 或者 yarn 安装 Element Plus。
2023-08-26 14:36:07
22503
原创 【uniapp 上传图片示例】
注意:需要在服务器端部署一个支持文件上传的接口,代码示例中假定上传的接口为。完成以上步骤后,就可以在 uniapp 中成功上传图片了。
2023-08-25 14:25:39
1510
原创 【vue3.0 使用组合式定义组件】
组合式 API 在 Vue2.x 中使用 mixins 实现,但在 Vue3.0 中已经被废弃,使用组合式 API 可以更好地管理组件的逻辑。函数接收两个参数,第一个参数是组件的 props,第二个参数是一个上下文对象,可以通过它访问到与组件相关的数据和方法。函数中,我们可以使用 Vue3.0 提供的新特性 — 组合式 API 来定义组件。使用组合式 API 可以更加灵活地定义组件的逻辑,让我们在开发过程中更加便捷和高效。在模板中使用这些数据和方法时,只需要通过。在上述示例中,我们使用。
2023-08-25 11:43:27
703
原创 【vue3.0 defineExpose使用】
是Vue3.0中的一个新API,它允许子组件暴露其内部属性或方法给父组件访问。可以通过将属性或方法添加到。函数中定义的属性或方法才能暴露给父组件,其他函数或变量将无法访问。函数中调用,否则会报错。并且,只有在子组件中的。属性引用了子组件,并且在父组件中定义了一个。现在,父组件就可以通过。在子组件中,我们使用。在父组件中,我们使用。
2023-08-25 11:09:06
1199
原创 【创建vue3.0 加vite 加 pinia 加 router 项目详细步骤】
在开始创建vue3.0 + vite + pinia + router项目之前,请确保您已安装了npm。在安装过程中,您将被要求选择所需的特性集。确保选择Vue作为框架选项,并将管理状态的选项设置为Pinia。现在,您已经成功创建了一个使用Vue3.0和Vite的项目,并且集成了Pinia和路由。
2023-08-24 17:14:54
567
原创 【vite 中如何配置跨域代理】
下面是一个简单的示例,假设我们需要访问 http://example.com/api,但是该接口在开发环境中会出现跨域问题,这时可以通过配置代理,让接口请求转发到本地服务器进行处理。在 Vue.js 中使用 vite 搭建应用时,可以通过 vite.config.js 文件进行跨域代理的配置。在配置完成后,就可以在代码中直接访问。以上代码中,我们使用了。
2023-08-24 16:46:13
2535
原创 【CSS 画个梯形】
是CSS的属性之一,用于裁剪元素的形状。它可以通过定义一个具有多边形顶点坐标的值来创建一个多边形的裁剪区域,从而实现元素的非矩形裁剪效果。其中多边形顶点坐标可以按照顺时针或逆时针顺序设置,坐标以百分比或像素为单位。因此,可以根据具体的需求选择不同的裁剪方式。还支持其他的形状裁剪方式,例如。
2023-08-24 11:05:40
3853
原创 【vue 引入pinia与pinia的详细使用】
在 Pinia 中,我们通过actions: {},},},})在这个例子中,我们定义了一个名为的 store,其中包含一个状态属性count和两个 action 方法increment和decrement。以上就是如何引入和使用 Pinia 的详细介绍。相比 Vuex 和其他类似的状态管理库,Pinia 更加轻量化且易于使用,适合中小型 Vue 项目的状态管理。
2023-08-23 18:17:35
2503
原创 【VUE 3.0 全局注册方法与组件】
这个属性允许我们在应用的实例上注册全局方法或属性。总之,Vue 3 中注册全局方法相当简单,只需使用。的全局方法,然后在应用实例上挂载了我们的根组件。方法来创建一个应用实例,并使用该实例的。在我们的应用中的任何组件中,都可以使用。在 Vue 3.0 中,你可以使用。方法来注册全局组件。这样就可以成功注册并使用全局组件了。在 Vue 3 中,我们可以使用。在组件的方法中,我们可以使用。在应用入口文件中(一般为。在上面的代码中,我们使用。在组件代码文件中,使用。在模板中使用注册的组件。方法来注册全局组件。
2023-08-23 18:13:59
6338
原创 【uniapp 监听键盘弹起与收回】
在uniapp中,可以通过使用小程序提供的API来监听键盘弹起与收回。通过上述代码,就可以实现在uniapp中监听键盘弹起和收回的功能。
2023-08-22 16:04:52
7791
4
原创 【JS DOM节点优化具体做法】
DOM节点优化可以通过以下具体方法来实现:1. 减少DOM操作次数:尽可能地将多个DOM操作合并成一个,减少JS代码对DOM的访问次数。2. 缓存DOM查询结果:将重复使用的DOM节点缓存起来,避免在每次操作时都进行DOM查询。3. 使用事件委托:在父节点上监听事件,而不是在每个子节点上,减少事件处理程序的数量,提高性能。4. 使用文档碎片(DocumentFragment):将DOM节点插入文档碎片中,在插入到文档中一次性渲染,减少页面重绘次数。5. 使用CSS选择器代替JavaScript查找
2023-08-18 17:18:21
360
原创 【JS 常用的概率算法】
可以利用马尔科夫链模拟状态的转移过程,并通过统计不同状态出现的频率来计算概率。例如,可以使用马尔科夫链模拟赌博游戏的输赢情况。如果输入的参数无解,则算法会随机生成新的参数再进行计算。拉斯维加斯算法是一种随机化算法,其特点是在进行计算时,会使用随机数来处理问题。蒙特卡罗算法利用随机采样的方式来模拟实验,并通过统计实验结果的频率来得出概率。例如,可以通过模拟抛硬币的过程来计算正面向上的概率。概率分布函数是描述随机变量在每个可能取值处的概率的函数,其中最常用的是正态分布函数、均匀分布函数和指数分布函数。
2023-08-16 17:55:10
1461
原创 【JS 贪心算法常见步骤】
在上面的例子中,我们将所有活动按照结束时间排序,然后从第一个活动开始选择可行的活动并加入结果集合。这里选择的是局部最优解,即选择结束时间最早的活动。你希望从这些活动中选择尽可能多的活动,以便你可以参加尽可能多的活动。贪心算法是一种解决优化问题的算法,其思想是在每一步选择中选择当前状态下最优解,从而达到全局最优解的目的。从第一个活动开始,选择第一个可行的活动,也就是第一个活动的结束时间早于或等于第二个活动的开始时间。将问题模型化为一个包含若干子问题的问题集合,每个子问题都有一个最优解。
2023-08-16 17:51:07
1067
原创 【uniapp 中使用uni-popup阻止左滑退出程序】
在uniapp中,可以使用uni-app插件uni-popup提供的阻止左滑退出程序的功能。此代码在应用程序启动时注册了一个全局左滑事件监听器,在左滑时,显示一个弹出框来阻止退出程序。其中,需要注意的是,这个弹出框的高度应该根据实际情况进行设置,以适配不同的屏幕尺寸。保存并关闭文件后,HBuilderX会自动安装插件。
2023-08-14 18:34:09
2901
原创 【JS 线性代数算法之向量与矩阵】
线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在计算机科学领域中,线性代数常用于图形学、机器学习、计算机视觉等领域。本文将详细介绍 JS 中常用的线性代数算法,并提供代码示例。
2023-08-14 18:20:22
1624
原创 【JS 常用查找算法】
二分查找也称为折半查找,它的基本思想是先将数据集排序,然后将数据集从中间分成两部分,如果待查找的元素小于中间值,则在左半部分继续查找,否则在右半部分继续查找,直到找到该元素或者确定该元素不存在,时间复杂度为O(logn)。哈希查找又称为散列查找,它的基本思想是通过哈希函数把待查找的元素映射成一个唯一的索引值,然后在该索引位置查找该元素,如果该元素不存在,返回-1。线性查找是最简单的一种查找算法,它的基本思想是从头到尾遍历待查找的数据集,找到对应的元素,时间复杂度为O(n)。
2023-08-11 17:34:31
791
原创 【VUE 监听用户滑动】
可以使用Vue的自定义指令来实现监听滑动方向与距离。});// 横向滑动// 右滑} else {// 左滑} else {// 纵向滑动// 下滑} else {// 上滑})})然后,在需要监听滑动事件的元素上使用v-swipe指令,并传入一个函数作为参数,该函数接收两个参数,分别为滑动方向和距离。console . log(` 滑动方向: ${ direction } ,滑动距离: ${ distance } `);
2023-08-10 16:55:08
5077
原创 【vue 监听页面滑动到底部】
在mounted钩子函数中创建IntersectionObserver实例,并监听容器底部的元素。在handleObserve回调函数中判断当前元素是否可见,如果可见则触发加载更多数据的逻辑。是一个可以异步观察目标元素与其祖先或视窗交叉状态的API。当目标元素进入或退出视口时,会触发IntersectionObserver的回调函数。在 Vue 中监听触底可以通过使用。// TODO: 加载更多数据。
2023-08-10 16:36:34
3394
原创 【网站收录前端需要怎么做?】
要想知道前端怎么做,首先我们来先了解一下这个收录是什么:网站收录是指搜索引擎将一个网站的信息加入到其数据库中,以便在用户搜索相关信息时能够显示该网站的相关内容。收录可以包括网站的主页、内部页面、图片、视频等内容。一般来说,搜索引擎会通过网络爬虫来收录网站页面。在收录规则方面,搜索引擎通常会考虑以下因素:网站质量:搜索引擎更喜欢质量高、内容丰富的网站,因此网站质量是影响收录的重要因素之一。网站结构:良好的网站结构可以使爬虫更方便地爬取网站内容,也可以提高网站的用户体验。
2023-08-10 10:52:21
418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅