- 博客(40)
- 收藏
- 关注
原创 Vue I18n 实现语言的切换
Vue I18n 是 Vue.js 的官方国际化插件,它能够让你的应用轻松支持多种语言。无论是简单的文本替换,还是复杂的日期、数字格式化,Vue I18n 都能提供完善的解决方案。
2025-11-16 20:24:15
387
原创 暗黑模式【闪白】解决方案
不知道用户上次选的是 dark,于是按默认白色画了一遍;等步骤 6 完成再整体变暗 → 肉眼看到“闪一下”。PWA = Progressive Web App(渐进式 Web 应用)
2025-11-16 18:13:47
1049
原创 Vue3中的Teleport与Suspense
可以通过 timeout 属性来设置 Suspense 在显示内容之前的等待时间。这样能防止在组件快速加载时显示时间过于短暂出现闪一下的效果。
2025-10-27 17:47:52
715
原创 声明式导航VS编程式导航
语法是通用的:同样的配置对象,既可以用在,也可以用在位置决定用法:在模板中用声明式,在代码中用编程式接收完全一样:都用和获取参数。
2025-09-18 21:40:03
569
原创 v-model与-sync的演变和融合
特性Vue 2Vue 3单个数据绑定等价于多个数据绑定等价于主要优势语法分离,意图明确API 统一,语法精简,一个v-model规则走天下你可以在子组件中定义一个计算属性,通过 getter 和 setter 来优雅地处理v-model,这在处理原生表单控件时非常有用。
2025-09-14 19:25:11
642
4
原创 类型别名 vs 接口 vs 类
TypeScript 中的类型别名(Type Aliases)、接口(Interfaces)和类(Classes)确实容易让人混淆,因为它们在某些场景下功能重叠,但在本质上又完全不同。这种表面相似性掩盖了深层的设计意图差异,导致初学者经常问:“我到底该用哪个?// 三种方式都能"定义类似的东西",但本质完全不同}}// 使用时似乎可以互换?这种表面上的可互换性正是困惑的根源。接下来,我们将深入剖析这三者的本质区别。接口/类型别名:只定义契约,不包含实现类:既定义契约又包含实现// 只定义契约。
2025-09-07 19:39:22
919
原创 JavaScript异步编程与执行机制全面解析
理解事件循环:同步 → 微任务 → 宏任务的执行顺序掌握Promise状态:pending、fulfilled、rejected三种状态及转换理解async/await:本质是Promise的语法糖,await会暂停函数执行注意内存泄漏:避免创建永远pending的Promise希望本文能帮助你深入理解JavaScript的异步执行机制,在面试和实际开发中都能得心应手!你能解释为什么是微任务而setTimeout是宏任务吗?欢迎在评论区讨论!
2025-09-01 17:21:14
1073
原创 构造函数--URLSearchParams
构造函数是一种特殊的函数,用于创建和初始化对象。在 JavaScript 中,构造函数通常以大写字母开头,这是一种约定俗成的命名规范。${this。
2025-07-25 11:49:53
429
原创 node.js中的fs与path模块
Node.js 是一个开源和跨平台的 JavaScript 运行时环境Node.js 在浏览器之外运行 V8 JavaScript 引擎,即 Google Chrome 的核心。
2025-07-24 21:21:14
408
原创 JavaScript事件循环机制
JavaScript设计之初就是为了在浏览器中处理DOM操作,为了避免复杂的线程同步问题,采用了单线程模型。这意味着JS代码是按顺序执行的,同一时间只能做一件事。当调用栈为空时,事件循环会从任务队列中取出任务压入调用栈执行。但单线程并不意味着阻塞,JavaScript通过。机制实现了异步非阻塞的执行模式。
2025-07-23 21:12:51
706
原创 回调地狱及解决方法
回调地狱(Callback Hell)是指在JavaScript异步编程中,多层嵌套的回调函数导致的代码难以理解和维护的现象。在Axios请求中(then的回调),这种问题尤为常见。
2025-07-22 21:06:59
280
原创 AJAX 概念与 axios 使用
AJAX(Asynchronous JavaScript and XML)即异步的 JavaScript 和 XML,是一种创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。核心原理:AJAX 通过浏览器内置的对象(或 Fetch API)向服务器发送异步请求,获取数据后利用 JavaScript 操作 DOM 更新页面内容。这种技术改变了传统的同步请求方式,大大提升了用户体验。
2025-07-21 21:23:37
750
原创 JavaScript执行机制与作用域
JavaScript代码执行分为两个关键阶段:当JavaScript引擎拿到代码后,首先进入编译阶段:1.2 执行阶段编译完成后,代码按顺序执行,完成实际的赋值和函数调用操作。作用域决定了变量的可访问性和生命周期,JavaScript中包含三种主要作用域::在最外层定义的变量:函数内部定义的变量:ES6引入,在{}内使用let或const定义的变量当访问一个变量时,JavaScript会按照"冒泡查找"的规则:这种查找路径构成了:当前作用域 → 父作用域 → … → 全局作用域JavaScript采
2025-07-18 21:13:19
824
原创 JavaScript中的Window对象
BOM 包含所有与浏览器交互的对象(如 document、location、navigator 等),而 window 是它们的全局入口。是浏览器提供的用于与浏览器窗口进行交互的对象模型。与DOM(文档对象模型)不同,BOM关注的是浏览器窗口本身而非文档内容。就是DOM的入口,不过一般情况下都会省略window,因为window是唯一且最大的。提供了两种主要的定时器方法,它们对于实现延迟执行和周期性任务至关重要。理解这两段代码的执行结果,就理解了js的执行机制(答案均为。对象提供了关于浏览器的详细信息。
2025-07-17 21:00:12
862
原创 【JavaScript】从事件流到事件委托
DOM事件是用户或浏览器在网页上执行的某种动作,比如点击、鼠标移动、键盘输入等。JavaScript通过事件监听器来响应这些事件。
2025-07-16 21:14:02
476
原创 DOM入门知识
DOM(文档对象模型)就像网页的"骨架",浏览器把HTML变成一棵树,JavaScript可以通过这棵树来修改网页内容。querySelectorAll返回所有匹配元素的静态NodeList(非实时更新)68。:DOM操作就像用遥控器操作电视,要先找到按钮(获取元素),再按下按钮(执行操作)!querySelector返回第一个匹配元素,未找到则返回null。:不会和标准属性冲突,适合存储临时数据。HTML标签的属性(如。
2025-07-15 21:10:53
201
原创 JavaScript 与 C语言基础知识差别
/ 必须指定返回类型和参数类型// 1. 函数声明// 2. 函数表达式// 3. 立即执行函数 可以解决命名不能冲突的问题console.log("立即执行");})();
2025-07-14 21:26:10
405
原创 6.11小测(html、css)
需要注意的是vw与vh一般不混用,会导致视口大小改变时元素的宽高比改变。在使用vw的情况下 通过设置。其中的 width=device-width 让页面宽度等于设备宽度,通常会出现。:0表示初始大小为0,让flex-grow决定最终尺寸。决定高度 aspect-ratio: 1/1;让flex项自动填满剩余空间。:1表示允许元素增长。:1表示允许元素收缩。
2025-06-15 17:31:42
868
原创 css基础知识--兄弟选择器、选择器权重、子元素选择器
在前端开发中,CSS选择器是我们每天都要打交道的基础知识。最近在实现百度页面时,发现对于一些概念还需要加强记忆,所以梳理了一写最基本最重要的知识点。
2025-06-08 18:37:55
2149
原创 【无标题】
在移动互联网时代,网页需要在各种设备上完美呈现。传统布局方式(如float、position)在响应式设计上存在局限,而Flex布局提供了更强大的排列对齐能力,Rem布局则解决了多设备尺寸适配问题。
2025-06-02 16:09:00
1024
原创 CSS2D、3D
* 定义动画 *//* 第一帧 */from{/* 最后一帧 */to{这里的from to可以写成0% 100%,同理中间还可以加上20% 30%等,但一定要是整数,因为这是对时间的划分。
2025-05-25 12:59:31
797
原创 CSS几个常见技巧
divborder;</</</但是生成的页面却是这样?其实这是因为浏览器默认将图片当作行内元素,并按照文字的)对齐规则进行布局。接下来我们了解一些divborder;;</</</生成看看结果我们发现底部的白色空隙并没有清除掉,其实这是因为vertical-align属性对适用,块级元素没有这个属性,所以应该把vertical-align: bottom;
2025-05-18 16:13:38
415
原创 CSS盒子模型
当两个垂直相邻的元素都有外边距时,它们会合并为一个外边距,取较大值。-- 实际间距是30px,不是50px -->-- 实际间距是30px,不是50px -->-- 实际间距是30px,不是50px -->style30px;-- 实际间距是30px,不是50px --></-- 实际间距是30px,不是50px -->-- 实际间距是30px,不是50px -->-- 实际间距是30px,不是50px -->-- 实际间距是30px,不是50px -->style。
2025-05-11 11:10:45
936
原创 二叉树入门【C语言实现】
是每个节点最多有两个"孩子"(子节点)的树形数据结构。想象一棵家族树,但每个父母最多只能有两个孩子,这就是二叉树的基本概念。
2025-05-05 16:52:55
645
原创 【动态规划入门】C语言实现
给定一个问题,我们把它拆分成一个个的子问题,直到子问题可以直接解决,然后将子问题答案保存起来,以减少重复计算,再根据子问题的答案反推,得到原问题解的一种方法就是动态规划(以空间换时间)。
2025-04-26 22:32:15
1151
原创 每日算法4.26
机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含任何有障碍物的方格。8. 在上面的分析中,我们知道每个点都需要由上方和左方的状态推导得到,所以在初始化时,要对。一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。,因此要想到达第一行(第一列)位置,只能一直向右(向下),所以。初始化为1,而不是0呢?
2025-04-26 15:36:28
2487
原创 每日算法4.25
该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。在完成所有重复项删除操作后返回最终的字符串。给出由小写字母组成的字符串 s,重复项删除操作会选择两个。在 s 上反复执行重复项删除操作,直到无法继续删除。,如 ( 1 + 2 ) * ( 3 + 4 )。返回一个表示表达式值的整数。在上面的题目描述中明确指出本题需要用。tokens ,表示一个根据。平常使用的算式则是一种。的字母,并删除它们。
2025-04-25 13:37:59
821
原创 4.22小测
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。nums数组初始为一个升序数组,经过旋转后各个元素的大小可以通过下面的坐标轴表示,其中绿色线段的最小值大于蓝色线段的最大值。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
2025-04-25 10:24:17
2002
原创 每日算法4.24
设置一个栈,遍历字符串。先将所有左括存入栈中,每遇到一个右括号,取出当前的栈顶元素(并弹空)进行匹配,若匹配不成功则返回false,全部对比完成之后如果。给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。——最近的左括号应和最近的右括号匹配。该题是找出该数组中满足其总和大于等于 target 的长度最小的子数组。,而栈是处理嵌套问题的很好工具。
2025-04-24 19:40:15
726
原创 每日算法4.23
当看到这道题时,容易想到上面例题的思路:使用两个队列来实现栈的功能。但是因为队列的特点是先进先出,所以当把第一个队列中的元素存到第二个队列以后。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。boolean empty() 如果栈是空的,返回 true;void push(int x) 将元素 x 推到队列的末尾。int pop() 移除并返回栈顶元素。int pop() 从队列的开头移除。int top() 返回栈顶元素。
2025-04-23 22:29:55
931
原创 每日算法4.22
cur和pre开始遍历,一直到cur指向最后一个节点,当cur->val=cur->next->val时,记录val的值,继续遍历cur使值不为val,最后让pre指向cur从而删除重复元素。给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。输入:lists = [[1,4,5],[1,3,4],[2,6]]输入:head = [1,2,3,3,4,4,5]输入:head = [1,1,1,2,3]输出:[1,1,2,3,4,4,5,6]输出:[1,2,5]
2025-04-23 13:14:19
367
原创 每日算法4.21
递归/迭代:创建一个虚拟头节点,作为合并后的新链表头节点前的一个节点。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6。输入:l1 = [1,2,4], l2 = [1,3,4]输入:head = [7,7,7,7], val = 7。输入:l1 = [], l2 = [0]输出:[1,1,2,3,4,4]输出:[1,2,3,4,5]
2025-04-21 22:27:45
764
原创 每日算法4.20
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2025-04-21 00:58:54
828
原创 每日算法4.19
给定一个的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解释: 可由子字符串 “abc” 重复四次构成。(或者子字符串 “abcabc” 重复两次构成。
2025-04-19 21:17:17
451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅