自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Object.assign() 和扩展运算符(...)

✅两者都是浅拷贝:只复制第一层,嵌套对象共享引用🚫不是深拷贝:无法创建嵌套对象的独立副本📌 优先使用扩展运算符(语法更简洁,是 JS 标准)⚠️ 嵌套对象需要额外处理才能实现深拷贝。

2025-06-07 18:59:35 345

原创 js里0.1+0.2!==0.3为什么,如何让人相等

JavaScript 使用 64 位双精度浮点数(IEEE 754 标准)存储数字,尾数部分仅 52 位,需对无限循环小数截断和舍入,导致精度丢失。通过上述方法,可有效规避 JavaScript 浮点数精度陷阱,确保 0.1 + 0.2 === 0.3 的逻辑成立。日常比较:优先用 Math.abs(a - b) < Number.EPSILON。注意:toFixed() 返回字符串,需用 parseFloat() 转换。适用场景:金融、科学计算等对精度要求极高的领域。适用场景:货币计算等需精确值的场景。

2025-06-01 14:30:07 302

原创 类型检测Object.prototype.toString 方法详解

必要性call或apply确保的this指向目标对象,绕过重写逻辑,直接读取底层类型标识。底层逻辑:通过[[Class]]或生成,实现精确类型检测。应用场景:类型判断(如的兼容实现)、调试、框架底层逻辑等。目标对象:通过callapply绑定的具体实例,用于精确类型检测。无call的this指向:默认指向或调用对象自身方法,导致类型判断失效。核心用途:跨对象类型检测、绕过重写逻辑、读取底层类型标识。

2025-05-23 08:42:16 540

原创 hash和history

时,本质是通过 前端路由逻辑 完成的,整个过程分为 URL 修改 和 内容加载 两步。• 核心角色:路由库像“调度中心”,统一管理 URL 与组件的映射关系,无论 URL 如何变化,都能正确加载内容。• 用户手动输入 URL 或刷新页面时,浏览器会向服务器请求对应路径的资源,需服务器配合返回入口文件。时,路由库 不会等待浏览器事件,而是直接根据新的 URL 执行组件加载逻辑。后的内容(哈希值)不会触发浏览器向服务器发送请求,因此页面不会刷新。后,根据路由表找到匹配的组件,并动态加载该组件到页面中。

2025-05-11 09:14:05 716

原创 type和interface的区别

都可以用于定义类型,但两者的设计目标和适用场景有显著差异。,可以显著提升代码的可维护性和类型安全性。• 本质:为已有类型创建别名,可表示基本类型、联合类型、对象、元组等。• 当需要定义对象结构或扩展第三方类型时(如 API 响应格式)。• 例如:定义组件的 Props 或 State 类型。• 本质:定义对象的结构或契约,主要用于面向对象编程。• 定义对象结构:尤其适合需要扩展或类实现的场景。• 复杂类型操作:联合类型、条件类型、映射类型等。• 需要联合类型、条件类型等高级操作时。定义,支持复杂类型操作。

2025-05-04 11:46:58 516

原创 关于vue3中如果想要用watch监听props的值的的注意事项

• 若父组件传递的新对象与原代理对象的 结构相同,Vue 可能会 复用已有的代理实例,导致引用地址未发生明显变化。需要访问对象的所有属性以建立依赖关系,但若代理对象未触发属性访问(如未实际使用嵌套属性),依赖链可能不完整。仍失效的原因,主要与 响应式代理的复用机制 和 深度监听的实现逻辑 有关。的作用是递归监听对象 所有层级的属性变化,但前提是 代理对象本身的引用地址已被正确追踪。实际监听的是代理对象的引用地址,而非父组件原始对象的地址。一、核心原因:响应式代理的复用。父组件传递新对象的代理处理。

2025-04-26 15:39:45 964

原创 JavaScript 中 == 操作符的 强制类型转换规则

通过理解这些规则,可以更好地调试代码,避免因类型转换导致的逻辑错误!的转换规则复杂,容易导致意外结果(如。• 字符串会转为数字,再比较数值大小。以下是 JavaScript 中。:严格比较类型和值,避免隐式转换。• 目标类型未指定时,默认按。返回对象本身 → 继续调用。返回数组本身 → 继续调用。规则转换为原始值,再比较。• 如果返回对象,继续调用。返回元素逗号拼接的字符串。• 理解对象转换:重点掌握。• 其他值与它们比较返回。返回原始值,则使用它。• 布尔值先转为数字(返回时间戳(数字)。

2025-04-20 10:25:20 769

原创 vue3的内置组件

Vue 提供了两个内置组件,可以帮助你制作基于状态变化的过渡和动画会在一个元素或组件进入和离开 DOM 时应用动画。是一个内置组件,这意味着它在任意别的组件中都可以被使用,无需注册。它可以将进入和离开动画应用到通过默认插槽传递给它的元素或组件上。v-ifv-show演示一下。

2025-04-13 14:48:44 577

原创 js的词法作用域

词法作用域(Lexical Scope)函数的作用域在函数定义时就已经确定,而非运行时确定。作用域链基于代码的物理结构(即书写时的嵌套关系),与函数调用位置无关。•词法作用域是 JavaScript 的核心设计,决定了变量的可见性规则•闭包 = 函数 + 词法环境,是模块化编程的基础•优先使用let/const避免变量提升和遮蔽问题• 理解作用域链可有效解决变量访问相关的 Bug通过掌握词法作用域,开发者可以更精准地控制变量的生命周期,编写出高效、可维护的闭包代码。

2025-04-05 18:09:31 436

原创 ts核心笔记

js不报错,类型不明确。

2025-03-30 14:32:54 314

原创 vue3核心知识

v-modelVue3 允许为v-model添加自定义修饰符。-- 父组件:使用自定义修饰符 capitalize --> < ChildComponent v-model.capitalize = " name " />-- 父组件:使用自定义修饰符 capitalize --> < ChildComponent v-model.capitalize = " name " />

2025-03-22 21:53:34 756

原创 vue3中ref和reactive的基本用法,区别

场景ref示例reactive示例计数器不适用用户信息对象不适用表单输入(单值)不适用表单输入(对象)不适用动态组件传参用ref传递单值用reactive传递复杂对象通过具体示例,可以更直观地理解ref和reactive的适用场景及操作差异。

2025-03-16 08:53:04 502

原创 axios

以下是关于 Axios 的。

2025-03-09 14:46:09 407

原创 Vue2 核心引擎:响应式系统详解

数据修改 → 触发 setter → 通知 Watcher → 推入异步队列→ 微任务阶段执行队列 → 生成新 Virtual DOM→ Diff 算法对比 → 精准更新真实 DOM这一机制确保了 Vue 的高效性和性能优化!数据劫持(感知变化)依赖追踪(知道哪里需要更新)异步批量更新(高效执行变更)实现了「数据驱动视图」的自动化更新,开发者只需关注数据逻辑,无需手动操作 DOM。理解这套机制,能帮助你写出更高效、可维护的 Vue 应用!

2025-03-02 12:00:46 836

原创 原型,原型链

原型和原型链是JavaScript的核心概念,它们为实现对象的继承、方法共享以及灵活的代码组织提供了基础。理解原型和原型链的工作原理,对于深入掌握JavaScript至关重要。在实际编程中,合理利用原型链可以编写出更高效、更可维护的代码。

2025-02-23 18:04:26 406

原创 Vue2笔记

style的默认样式是作用到哪里的?scoped的作用是什么?style中推不推荐加scoped?data写成函数的目的是什么?组件通信,就是指组件与组件之间的数据传递组件的数据是独立的,无法直接访问其他组件的数据。想使用其他组件的数据,就需要组件通信组件关系分类有哪两种父子组件通信的流程是什么?父向子子向父组件上 注册的一些 自定义属性。

2025-02-16 11:38:41 482

原创 Vue2中事件绑定指令所要注意,关于绑定函数加不加括号的问题

浏览器对 HTML 内联事件属性的处理机制是将属性值作为事件触发时要执行的代码进行存储,而不是在解析阶段就执行,这就是为什么在 HTML 内联事件处理程序中加()传递参数时函数不会立即执行,而是在事件触发时才执行的原因。

2025-02-09 19:26:23 482

原创 常用数组,字符串方法

slice() 方法是字符串对象的一个非常有用的方法,它允许你提取字符串的某个部分,并返回一个新的字符串,而不修改原始字符串。charCodeAt 是 JavaScript 中 String 对象的一个方法,用于返回在指定的位置的字符的 Unicode 编码。sort() 方法会直接修改原数组,并返回排序后的数组(但返回值通常是多余的,因为你已经修改了原数组)该方法会直接修改原数组,并返回该数组。reverse 后,原数组的内容会被改变,并且该方法没有返回值(或者说返回的是修改后的原数组)。

2025-01-25 20:42:18 617

原创 关于Date的用法

获取月份,返回值为0到11(0表示1月,11表示12月)。获取星期几,返回值为0到6(0表示星期天,6表示星期六)。获取当前日期(一个月中的第几天),返回值为1到31。获取自1970年1月1日UTC零时起的毫秒数。分别获取小时、分钟、秒、毫秒。

2025-01-19 22:43:30 246

原创 es6基础知识

首先弄明白ECMA和js的关系。加个在那里打印,结果是window,所以这里的this就是window,环境是什么,我就是什么,所以在里面打this,也是window。所以需要真的构造一个对象来,这里的json仅仅只是赋值,并不是真的构造一个对象,可能没有那个环境,所以this指向的是window。结果点谁都是3,因为i是函数作用域,就只是在onload这个函数里起作用,然后当执行完了,最后的i是3。箭头函数是固定this的,这里到底固定成了什么,固定成了当前的环境,到底是在哪个对象的环境里。

2024-12-08 17:08:37 833

空空如也

空空如也

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

TA关注的人

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