自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 一篇文章带你搞懂js的this指向

基于以上的分析,我们可以简单的得出this指向简单记忆方式script 标签中,this指向全局对象函数作用域中,this指向函数调用对象,如果函数独立调用会出现特殊情况(严格模式指向undefined,非严格指向全局)箭头函数中,this指向会沿着作用域链向上级作用域中查找this,直到找到为止。new 关键字调用函数生成对象时,this一定指向新创建的对象,这一点是无法被改变的,尽管使用显示绑定函数去主动绑定this,也无法改变this指向。

2025-04-03 20:04:35 723

原创 浏览器扫码

H5端调用浏览器使用摄像头扫码功能必须要保证当前网页的上下文是安全上下文,否则浏览器默认不允许获取摄像头权限。

2025-03-30 21:21:30 660

原创 Vue2和Vue3的区别

Vue2使用的是Object.defineProperty()来劫持各个属性的setter/getter,在数据发生变化的时候通知订阅者更新视图。

2025-03-23 11:00:09 1060

原创 uniapp 和 webview 之间的通信

这段代码会在webview的全局作用域中执行。在webview中我们可以使用当前webview实例的postMessage方法来触发webview组建的onPostMessage方法来传递数据,重点就需要放在了如何将uniapp的webview实例来加入到webview的h5项目当中。这个是在引入webview的SDK之后,当webview页面被加载完成之后会触发,该事件触发表示着uniapp和webview之间的桥成功搭建,uni对象被成功的注入到当前H5的上下文中。)之间安全地传递消息。

2025-03-22 16:49:55 1457

原创 闭包的理解

所以尽管是函数作用域销毁,其捕获变量仍然可以被访问到。经过查询资料我得知,上述所理解的变量声明确实存在于局限性,我们都知道js中存在三种作用域(全局作用域,函数作用域,块级作用域,后两者也称为局部作用域),其中只有局部作用域的变量声明是符合上述的变量声明规则的。在函数作用域或者是块级作用域中声明的变量是临时变量,其会被保存到栈空间中,待到当前作用域内所有的代码执行完毕后会将这些变量回收。所谓闭包,指的是一个函数返回另一个函数,而返回函数作用域中使用了外部函数的变量,导致变量被保存到内存中无法回收的现象。

2025-02-08 10:00:28 531

原创 面试回顾——1

重写(override):在子对象中定义和父对象中同名的成员,结果:再使用这个成员时,总是优先使用子对象自己的同名属性,而永久屏蔽了父对象中的同名属性。构造函数虽然可以重用代码,但是却浪费了内存,定义在构造函数中的方法,每创建一个对象,都会执行一次function,都会创建该方法的一个完全相同的副本给每个新创建的对象。注意:应该在创建子对象之前更换,这样新创建的子对象才能自动继承新的原型对象,在创建子对象之后更换,虽然构造函数的原型对象发生改变,已经创建的子对象仍然继承旧的原型对象。

2025-01-31 17:27:07 1177

原创 从零搭建一个Vue3 + Typescript的脚手架——day3

在src下创建一个directives文件夹,创建一个index.ts文件// 挂载自定义指令// 使用app.directive()方法注册自定义指令在main.ts文件中引入执行。

2025-01-30 20:12:11 422

原创 从零搭建一个Vue3 + Typescript的脚手架——day2

ElementPlus是一个基于Vue3的组件库,它提供了丰富的组件和样式,可以帮助开发者快速构建现代化的Web应用。ElementPlus是基于ElementUI的Vue3版本,它提供了更多的组件和样式,同时也支持Vue3的CompositionAPI。ElementPlus是一个开源项目,它有丰富的文档和示例,可以帮助开发者快速上手。

2025-01-20 15:25:52 865

原创 从零搭建一个Vue3 + Typescript的脚手架——day1

Vite是一个由尤雨溪开发的现代化前端构建工具,它利用了浏览器对ES模块的原生支持,极大地提升了开发服务器的启动速度和热更新效率。Vite不仅适用于Vue.js,还支持React、Svelte等多种框架,通过其丰富的插件系统和优化的性能,为开发者提供了更加流畅和高效的前端开发体验。

2025-01-14 17:59:33 967

原创 HTTPS验证流程

http通常是直接和TCP进行通信的,而https中http是和SSL通信,再由SSL与TCP进行通信。SSL协议是一个介于应用层和传输层之间的一个安全协议。

2024-12-27 21:21:46 546

原创 Sass复习篇

Sass 是常见的css预处理器的一种,他提供了许多遍历的写法,让css开发变得更为简单和强大。Sass有两种版本,Sass和Scss,两者之间的区别在于语法,Sass使用缩进的方式书写,而Scss使用大括号的方式书写,Scss是Sass的升级版,兼容Sass的所有功能。所我们一般书写时都是用Scss的语法形式。

2024-12-24 16:28:21 1149

原创 Nuxt样式文件导入

Nuxt或Vite的样式文件导入失效的原因。

2024-12-20 20:22:42 218

原创 浏览器解析页面流程

浏览器首先判断输入的url是否有http缓存,如果有则直接从http缓存中读取数据并显示。如果没有,则进行下一步。进行DNS解析,获取域名对应的IP地址。

2024-12-06 19:08:05 477

原创 前端首屏加载优化

1.首屏加载慢的原因网络延迟资源太大服务器响应慢

2024-12-04 21:55:33 1188

原创 浏览器事件循环浅析

因此,浏览器将无法立即处理的任务放入任务队列中,等待主线程空闲时执行。: 负责页面的渲染,脚本的执行等。: 负责浏览器的界面展示,用户交互,子进程管理,浏览器内核的初始化等。所以浏览器采用了异步的方式,将无法立即处理的一些代码包装成任务,放入任务队列中等待主线程空闲时执行。任务队列是异步任务的集合,浏览器会将无法立即处理的任务放入任务队列中等待主线程空闲时执行。渲染主线程是浏览器渲染进程的核心线程,负责执行任务队列中的任务。事件循环是浏览器渲染进程的核心概念之一,是浏览器渲染进程中异步任务执行的一个机制。

2024-12-02 22:04:37 592

原创 Monorepo 前端项目管理模式

Monorepo 是一种将多个项目存储在一个代码库中的策略,这使得跨项目共享和管理代码变得更加容易。在 Monorepo 模式下,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中。pnpm 是一个高效的包管理器,它通过使用硬链接和符号链接将包存储在共享的内容寻址存储中,从而避免了重复下载和安装。pnpm 的主要优势在于其节省磁盘空间和提高安装速度的能力。

2024-11-29 21:12:26 993

原创 前端基础面试题·第四篇——Vue(其三)

Vue中组件定义式可以为其添加一个name属性,这个属性是组件的别名。当时组件被渲染时,Vue DevTools 会显示组件的名称,方便开发者调试,增强调试体验。当组件需要在内部调用渲染自己本身时,需要通过name属性来指定组件名称,否则Vue会报错。给组件命名后,我们可以通过全局注册,在全应用范围内使用该组件。方便了组件的使用,提高了组件复用性。使用keep-alive包裹动态组件时,可以通过include和exclude属性来指定哪些组件需要缓存,哪些组件不需要缓存。

2024-11-09 21:44:05 920 1

原创 鼠标拖尾特效

准备一个元素类来描述速报拖尾的元素。

2024-10-28 15:14:37 259

原创 WebSocket简单使用

WebSocket 是一种网络通信协议,提供了在单个TCP连接上进行全双工通信的能力。这意味着客户端和服务器可以同时发送和接收数据,而不需要等待对方的回应。WebSocket 协议在2011年成为国际标准,并且被大多数现代浏览器所支持。

2024-10-26 16:52:47 1818

原创 canvas鼠标点击特效

8.92 Mjc:/ 01/09 t@r.EH 鼠标点击烟花特效 # 程序员 # 代码 # 前端 # canvas # 艺术在抖音 https://v.douyin.com/iSRSQQJ6/ 复制此链接,打开Dou音搜索,直接观看视频!

2024-10-18 17:50:04 502

原创 Redis简介

启动 这里以zip压缩包为例,我们打开zip压缩包(以下统称redis),右键打开powershell窗口输入 .\redis-server.exe redis.windows.conf 命令就可以启动redis服务了。客户端连接 这里我们在redis中再打开一个powershell窗口,输入 .\redis-cli.exe 命令按回车就可以连接上redis服务了。redis默认是不需要密码就可以连接服务的,这是一种非常不安全的做法,为了安全起见,我们可以自己去设置一下redis的密码。

2024-10-15 17:56:34 1105

原创 前端基础面试题·第四篇——Vue(其二)

路由跳转接收参数params传递参数可以用过页面路由对象route的params属性访问到。2.query传参query 传参是通过URL的查询字符串来传递参数,这种方式传递的参数是可选的。这种方式不需要提前配置路由路径,直接在路由跳转时在路径或者配置中传递参数即可。路由跳转接收参数这种方式传递的参数会挂载到页面路由对象route的query对象上。2. hash和history路由区别hash路由地址上在路径后面带#号,history路由地址上不带#号.在

2024-10-08 17:48:41 1180

原创 vue中如何实现组件通信

则该函数会接受第三个参数,该参数是一个对象,该对象中需要定义persist属性。属性的值和上面一样。同时persist属性可以简写,接收一个布尔值作为值,表示开启或关闭持久化。其缓存策略默认会使用localStorage。key默认会使用store的名称。paths默认会使用所有属性。

2024-10-04 18:48:36 1593 1

原创 个人项目简单https服务配置

SSL证书是一种数字证书,由受信任的证书颁发机构(CA)颁发,用于在互联网通信中建立加密链接。SSL代表“安全套接层”,是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性,同时验证网站的所有权。

2024-09-30 17:15:11 2042

原创 前端基础面试题·第四篇——Vue(其一)

如果说请求的数据在后续dom需要渲染或者需要较早渲染,一般在created中请求数据,如果请求的数据在后续dom不需要渲染,则可以在mounted中请求数据。

2024-09-27 11:00:51 1054

原创 Vite项目中eslint的简单配置

使用包管理工具创建一个vite项目。

2024-09-14 21:13:06 1634 1

原创 前端基础面试题·第三篇——JavaScript(其四)

JSON.stringify() 方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串,如果指定了一个 replacer 函数,则可以替换值。

2024-09-10 16:53:19 1399

原创 前端基础面试题·第三篇——JavaScript(其三)

这其实是promise的封装语法糖,首先他的运行必须是在一个函数中,然后通过async将该函数标记为异步函数,在函数中执行异步操作的代码前面添加await关键字,原本需要通过then方法获取一步结果,现在就可以直接由原本的异步操作直接返回(本质上这里其实是js引擎等待异步代码执行完毕后获取到结果在返回,并不是同步执行,只不过还将回调函数变为了底层自动处理,减少了代码书写量),同样如果是catch方法获取数据,await也会直接获取到。NodeList可以是动态的也可以是静态的,‌具体取决于获取它的方法。

2024-09-09 18:18:08 1916

原创 前端基础面试题·第三篇——JavaScript(其二)

构造函数中,一般不允许自己写返回值,当在函数中返回一个基本数据类型时,返回值无效,并不会返回给外面接收变量,但当返回一个引用数据类型时,这个引用数据类型将会覆盖本次创建的对象,从而会导致构造函数没有效果,因此不建议在构造函数中返回值。当函数被调用时,会创建函数上下文,函数上下文包含有变量对象,作用域链,this,函数上下文中的this指向调用函数的对象,如果没有对象调用函数,那么this指向全局对象(在浏览器端指向window)浅拷贝会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝。

2024-09-08 17:42:42 1576

原创 前端基础面试题·第三篇——JavaScript(其一)

它发⽣在使⽤ var、let 或 const 声明变量但未赋值时。在 JavaScript 中,两者很容易被混为⼀谈typeof 对 undefined 和 undeclared 的 都返回 “undefined”。

2024-09-07 17:30:11 1154

原创 前端基础面试题·第二篇——CSS(其二)

!important - 强制生效样式 - 有即生效行内样式 - 有即生效 权重: 1000id选择器 权重:100类选择器,伪类,属性选择器 权重: 10元素选择器,伪元素选择器,权重: 1通配符,兄弟,后代,子代 ,权重: 0

2024-09-06 18:18:56 1648

原创 前端基础面试题·第二篇——CSS(其一)

普通流就是指格式化上下文,在普通流中,元素按照先后位置从上至下排列,在这个过程中,行内元素水平排列,直到当行被占满,则换行,块级元素则会被渲染到新的行,除非设置display: inline-block;bfc称为块级作用域上下文,是web页面中css渲染的一部分,是块级元素布局过程发生的区域,也是浮动元素与其他元素交互区域,bfc是一个独立的布局区域,与外部互不影响,用于决定块级元素的布局和浮动相互影响的一个区域。伪元素: ::before ::after ::first-line。

2024-09-05 16:29:35 1299

原创 前端基础面试题·第一篇——HTML

前端基础面试题·第一篇——HTML

2024-09-04 16:36:29 1508

原创 第七章 手写watch 实现

第七章 手写watch实现

2024-09-03 14:08:43 945

原创 第六章 手写computed函数

第六章 手写computed函数

2024-09-02 17:04:52 878

原创 第五章 手写ref函数

第五章 手写ref函数

2024-09-01 16:04:34 700

原创 第四章 细节处理

第四章 细节处理

2024-08-30 14:01:52 265

原创 第三章 手写effect函数

第三章 手写effect函数

2024-08-27 09:44:32 726

原创 第二章 手写reactive函数

第二章 手写reactive函数

2024-08-26 14:15:22 817

原创 第一章 搭建monorepo开发环境

第一章 搭建monorepo开发环境

2024-08-25 16:02:16 800

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除