- 博客(214)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 黑马程序员TypeScript学习笔记—索引签名、映射类型等
这篇文章摘要总结了TypeScript中的关键类型系统特性,包括索引签名、映射类型、泛型工具类型Partial的实现分析,以及索引查询类型的使用方法。同时介绍了TS的类型声明文件(.d.ts),说明了其只包含类型声明而不含可执行代码的特性。文章还讲解了如何利用内置和第三方类型声明文件,并通过package.json加载声明文件的方法。最后,提供了创建自定义类型声明文件的指导,包括项目内共享类型和为已有JS文件添加类型声明的基本概念。这些内容涵盖了TypeScript类型系统的核心功能和声明文件的应用场景。
2025-06-03 14:48:34
139
原创 黑马程序员TypeScript学习笔记—泛型篇
Type可以表示任意类型,这样导致有的类型的一些属性无法正常使用。字符串就像数组一样,也可以通过索引的方式来访问。数值没有属性,但它对应的包装类型有属性。
2025-06-03 14:42:49
148
原创 黑马程序员TypeScript课程笔记—类型兼容性篇
本文介绍了类型兼容性的相关概念,主要包括对象、接口和函数之间的类型兼容性规则。其中,函数参数个数和对象兼容性相反,而函数参数类型和返回值的兼容性也有特殊规则。此外,还解释了回调函数的概念,比较了let、const、var的区别,以及交叉类型如何将多个类型合并为一个类型,并对交叉类型与接口进行了对比说明。这些内容为理解TypeScript的类型系统提供了基础指导。
2025-06-03 14:32:25
579
原创 TypeScript中class的两种继承方式extends和implements的对比
TypeScript中extends和implements的核心区别:extends用于类继承,支持单继承,子类获得父类的实现;implements用于接口实现,支持多实现,仅约束方法签名。extends强调"is-a"关系,实现代码复用;implements强调"can-do"关系,确保契约一致性。两者可结合使用,extends更适合纵向扩展,implements更适合多态和横向约束。正确选择取决于需求:复用代码用extends,定义契约用implements,需要
2025-06-03 14:20:07
584
原创 黑马程序员TypeScript课程笔记—class篇
本文介绍了class的基本使用方法。主要内容包括:构造函数的正确用法(无需指定返回值类型);实例方法的定义;两种继承方式(extends和implements);三种可见性修饰符(public、protected、private)的应用;readonly修饰符的使用;以及属性类型标注的注意事项(无论是否有默认值都应指定类型)。这些要点涵盖了class的核心语法特性,有助于正确使用类进行面向对象编程。
2025-06-03 14:10:55
436
原创 TypeScript 中的字面量类型(Literal Types)
在 TypeScript 中,(如特定的字符串、数字或布尔值),而不仅仅是宽泛的类型(如stringnumber字面量类型通常与联合类型(Union Types)结合使用,用于创建更精确的类型约束。
2025-06-03 13:58:59
260
原创 黑马程序员TypeScript课程笔记3
而且type有= interface(接口)没有=如果声明变量没有初始化值的时候,需要写类型,因为这时候没法推论出来类型如果函数的参数类型没有写,也没法推断出返回值的类型点击打开网址。在网页的控制台中输入console.dir($0),之后往下拉,可以看到 alink具体指的是什么字面量类型一般和联合类型一起使用
2025-06-03 13:52:14
245
原创 黑马程序员TypeScript课程笔记2(11-20)
数组类型可以写为"let numbers:number[]=[1,2,3] ,也可以写为let numbers:Array=[1,2,3]:string}) //函数的参数可以是对象类型的。联合类型的写法 let arr:(number|string)[]=[1,'a',2,'g']如果指定了函数参数的类型,调用的时候必须要传入参数,否则会报错。如果指定了函数返回值的类型,必须要有函数返回值。上图分别为函数声明的方式和函数表达式的方式。TS中对象类型的属性通过;JS中对象类型的属性通过,分隔。
2025-06-03 13:24:56
382
原创 黑马程序员TypeScript课程笔记1(1-10)
TypeScript(简称:TS)是JavaScript的超集(JS有的TS都有)TypeScript=Type+JavaScript(在JS基础上,为JS添加了类型支持)TS有明确的类型 let age1:number=18JS没有明确的类型 let age2=18TS 和JS都可以在浏览器和NodeJS中运行1.一类是JS已有的类型原始类型(基础类型):number String boolean null undefined symbol。
2025-06-03 12:17:15
323
原创 vedio.ontimeupdate()和video.onloadeddata()
JavaScript视频事件处理摘要 video.onloadeddata 事件在视频第一帧加载完成后触发,适合初始化播放器、显示封面或获取视频基础信息。它早于oncanplay事件,但晚于onloadedmetadata(仅元数据加载)。使用时建议优先采用addEventListener替代直接赋值,防止事件覆盖。 video.ontimeupdate 事件在视频播放位置变化时持续触发(每秒4-60次),主要用于进度条同步、字幕显示和观看记录。与seeked事件(仅手动跳转触发)不同,它适用于实时进度跟踪
2025-05-31 16:58:29
999
原创 黑马程序员Pink的javaScript课程js进阶day4
这篇文章简要介绍了JavaScript中的关键概念,包括:浅拷贝和深拷贝的实现方法(Object.assign、递归、JSON.stringify等);异常处理(throw/try-catch);this的指向规则(普通函数与箭头函数);改变this指向的方法(call/apply/bind);以及防抖和节流的概念、实现和应用场景。文章还提到了一些实用工具如lodash库中的_.debounce和_.throttle函数。这些知识涵盖了JavaScript开发中的重要技术点,对理解函数执行、数据操作和性能优
2025-05-31 16:48:09
162
原创 黑马程序员Pink的javaScript课程js进阶day3
本文探讨了面向对象与面向过程编程的差异,重点分析了构造函数的内存浪费问题及原型对象的解决方案。内容涵盖:1)两种编程范式特点对比;2)构造函数封装导致的内存浪费问题;3)prototype原型对象的内存优化机制;4)数组扩展案例实践;5)constructor属性和__proto__对象原型;6)原型继承与原型链机制;7)instanceof运算符;8)通过模态框案例展示构造函数写法和open/close方法封装。全文系统性地讲解了JavaScript面向对象编程的核心概念与实践应用。
2025-05-31 15:02:44
161
原创 黑马程序员Pink的javaScript课程js进阶day2
JavaScript对象与数组操作全解析 本文系统介绍了JavaScript中对象与数组的核心操作方法。主要内容包括:1)对象的三种创建方式(字面量、new Object()、构造函数);2)构造函数的使用与实例化过程;3)实例成员与静态成员的区别;4)内置构造函数(Object、Array等)的用法,重点讲解了Object.keys/values/assign等静态方法;5)数组的高阶方法如reduce、find、every以及伪数组转换;6)字符串常用方法如substr、includes等;7)结合购物
2025-05-31 13:02:55
251
原创 黑马程序员Pink的javaScript课程js进阶day1
本文摘要:JavaScript核心概念包括作用域(局部/全局)、作用域链、垃圾回收机制(引用计数/标记清除)及闭包应用;变量/函数提升特性;ES6新增的剩余参数、展开运算符和箭头函数语法;数组/对象解构技巧;数组遍历方法forEach;最后通过商品筛选案例综合应用上述知识点。文中特别指出闭包可能导致内存泄漏,var存在变量提升而const/let不存在等细节要点。
2025-05-29 21:39:02
134
原创 offset 家族和 client 家族
摘要:前端开发中,offset家族和client家族是获取元素尺寸与位置的关键属性。offset家族包含offsetWidth/Height(总尺寸含边框)、offsetLeft/Top(相对定位父元素偏移)和offsetParent(定位参考);client家族包含clientWidth/Height(可视尺寸不含边框)、clientLeft/Top(边框宽度)和clientX/Y(鼠标视口坐标)。两者分别适用于计算元素占用空间和内部可用区域,需注意滚动条影响、动态更新及盒模型差异。典型应用包括拖拽定位、
2025-05-29 12:53:27
595
原创 黑马程序员Pink的javaScript课程APIday6
正则表达式是用于字符串匹配的强大工具,主要包括test()和exec()方法。核心要素包含元字符(边界符^$、量词、字符类)、预定义类以及修饰符(i/g)和替换函数replace()。实际应用案例包括验证码发送、用户信息验证(用户名、手机号、密码匹配)以及表单提交等功能模块的开发,这些正则模式可直接复用。完整项目通常涵盖登录页、首页等界面的正则验证实现。
2025-05-28 23:02:42
105
原创 黑马程序员pink的javaScript课程APIday5
摘要:本文介绍了前端开发中的DOM(文档对象模型)和BOM(浏览器对象模型)的核心概念及区别。DOM用于操作HTML/XML文档内容(如元素修改),以document对象为核心;BOM用于浏览器交互(如页面跳转),以window对象为核心。DOM由W3C标准化,而BOM无统一规范。同时讲解了定时器(setTimeout)、事件循环、location/navigator/history对象操作,以及本地存储(localStorage/sessionStorage)的使用方法,包括复杂数据转换(JSON)和案例
2025-05-28 22:51:49
1071
原创 DOM和BOM的区别
特性DOMBOM核心对象documentwindow作用操作文档内容、结构和样式操作浏览器窗口和环境标准化W3C 标准无统一标准示例方法alert()理解两者差异有助于更高效地开发前端应用:使用 DOM 操作文档内容,使用 BOM 处理浏览器窗口交互。
2025-05-28 16:46:20
465
原创 黑马程序员Pink的javaScript课程APIday4
本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。
2025-05-28 15:41:42
706
原创 黑马程序员Pink的javaScript课程APIday3
本文摘要:文章介绍了前端事件处理的关键技术点。包括表单全选/反选实现、事件流机制(捕获与冒泡)及其阻止方法、事件解绑方式(L0与L2级别)、mouseover与mouseenter区别、事件委托原理及优势。还涵盖阻止默认行为、页面加载/滚动事件处理、client/offset家族属性区别,以及京东/B站滑动导航等实战案例。重点对比了L0和L2级别事件注册在覆盖性、执行阶段和解绑方法上的差异,并强调事件委托通过冒泡机制提升性能的优势。最后通过电梯导航案例综合应用这些技术。
2025-05-28 13:16:00
764
原创 黑马程序员Pink的javaScript课程APIday2
本文摘要:本文系统讲解了事件监听的核心知识点与应用场景。主要内容包括:事件监听的三要素(触发对象、方式、操作)及语法;常见事件类型如鼠标、焦点、键盘事件的使用;事件对象属性获取光标位置的方法;通过案例(随机点名、轮播图、评论发布)演示事件监听的实际应用;对比on和addEventListener两种绑定方式的区别;介绍了环境对象this和回调函数的概念。重点强调了addEventListener的优势及事件对象在交互开发中的重要作用,为前端事件处理提供了完整的技术指导。
2025-05-27 23:15:43
539
原创 javascript:void(0) 是一个常见的 JavaScript 伪协议
是一个常见的 JavaScript 伪协议,下面从几个方面详细解释其含义和用途。
2025-05-06 22:04:15
791
原创 WEB前端小练习——记事本
web前端小项目,用html,css,javaScript,vue语言实现,可以实现新增笔记,查询笔记,修改笔记,删除单条笔记,批量删除笔记,清空笔记本,统计页面笔记数目的功能 具有登录注册功能
2025-05-03 22:03:55
382
原创 Axios 是一个基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js 环境。以下是它的一些主要作用
Axios 是一个基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js 环境。
2025-04-23 08:55:28
512
原创 substring() 和 slice() 这两个方法的相同与不同
在 JavaScript 里,和slice()这两个方法都用于从字符串里提取子字符串,它们的功能有相似之处,但也存在一些差别。
2025-04-02 16:36:21
323
原创 javaScript判断一个对象是否为空
在判断对象是否为空时,使用for...in循环和使用Object.keys()方法有什么区别?是一种简洁但可能性能稍差的方法,因为它涉及到对象的序列化和字符串比较。选择使用哪种方法取决于具体的需求。如果只关心可枚举属性,除了上述方法,还有其他方法可以判断对象是否为空吗?如果需要考虑不可枚举属性,如何判断一个对象是否包含特定的属性?
2025-01-18 11:39:18
273
原创 javaScript如何实现字符串的反转
方法进行反转,然后再将反转后的数组元素组合成一个字符串。通过这种方式,可以方便地实现字符串的反转操作,而无需依赖字符串本身的。方法,因为 JavaScript 中的字符串对象没有提供这个方法。在 JavaScript 中,字符串本身没有。不过,可以将字符串先转换为数组,利用数组的。
2025-01-04 15:23:57
358
原创 MySQL中on和where的区别
select name, bonus from Employee left join Bonus on Employee.EmpId = Bonus.EmpId where bonus is null or bonus < 1000 作者:力扣官方题解 链接:https://leetcode.cn/problems/employee-bonus/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2024-12-04 14:13:00
500
原创 MySQL数据库做题笔记
replace(content, '#', ''):这是一个字符串替换操作,将字符串content中的#字符替换为空字符串。(length(content)-length(replace(content,'#',''))):通过原始字符串长度减去替换#字符后的字符串长度,得到字符串content中#字符的出现次数。(length(content)-length(replace(content,'#','')))>3:判断字符串content中#字符的出现次数是否大于 3。
2024-12-01 14:45:57
350
原创 substring()会改变原字符串,slice()不会改变原字符串
【代码】substring()会改变原字符串,slice()不会改变原字符串。
2024-11-29 11:29:16
352
原创 javaScript中replaceAll()可以匹配替换所有,replace()匹配替换一个
var interpret = function(command) { return command.replaceAll("(al)","al").replaceAll("G","G").replaceAll("()","o");};
2024-11-28 23:45:57
186
原创 javaScript中可以用includes()方法来判断数组中是否包含某个元素
let n1=0;let n2=0;i++){n1++;i++){n2++;
2024-11-28 23:24:28
208
原创 力扣做题笔记
在正确的代码中,经过修正数组元素的移除操作后,循环应该能正确地从排序后的数组两端选取元素计算平均值,并最终得到正确的最小平均值。方法是用于移除数组中的最后一个元素,并返回被移除的那个元素。它不接受参数作为要移除元素的值,而是直接移除数组末尾的元素。方法用于移除数组的第一个元素,并返回被移除的元素。它同样不接受参数作为要移除元素的值,而是直接移除数组开头的元素。正确的做法应该是先获取要移除的索引,然后使用该索引来移除元素。的元素移除操作没有按照预期进行,从而使得后续计算平均值的逻辑也出现了偏差。
2024-11-28 22:58:37
383
原创 黑马程序员Pink的javaScript课程day5(对象)笔记
console.log() \document.write() 也是内置对象。对象是一种数据类型,是无序的数据集合。对象中的方法也可以添加形参或者实参。null的对象类型为Object。13.简单数据类型和引用数据类型。方法二:对象名['属性名']5.遍历对象(for in)2.对象的操作(增删改)方法一:对象名.属性名。对象方法中的实参和形参。6.渲染学生信息表案例。12.学成在线页面渲染。
2024-11-28 22:10:00
380
原创 在 JavaScript 中,将一个十进制字符串转为二进制的方法
在上述代码中,通过从最高位(这里假设是 31 位,对于 32 位整数情况)开始,不断右移并判断每一位的值,最终得到二进制字符串。不过这种方法相对复杂一些,在实际应用中,前两种方法使用得更为普遍。如果要转换的十进制字符串表示的是一个整数,还可以通过位运算来实现转换为二进制。
2024-11-27 18:23:43
871
原创 黑马程序员Pink的javaScript课程day4(函数)笔记
为了避免出错,形参不管是基本数据类型的变量还是数组,都可以赋一个初始化的值。break结束循环和switch,return结束函数。匿名函数的使用方法:表达式/立即执行函数。作用域分为全局作用域和局部作用域。为了避免出错,给形参一个默认值。11.转换为Boolean类型。1.函数的基本使用以及封装。3.函数封装数组求和案例。8.匿名函数及函数表达式。匿名函数:没有名字的函数。立即执行函数的第一种写法。立即执行函数的第二种写法。函数的作用:代码复用。9.封装计算时间函数。
2024-11-24 19:01:51
180
【版本控制系统】Git工具安装配置与基础操作指南:代码仓库管理及协作开发流程详解
2025-05-09
前端开发Vue快速入门:基础语法与常用指令详解及网络请求集成
2025-05-09
web前端小项目,用html,css,javaScript,vue语言实现,可以实现新增笔记,查询笔记,修改笔记,删除单条笔记,批量删除笔记,清空笔记本,统计页面笔记数目的功能 具有登录注册功能
2025-05-03
全面解析前端技术要点涵盖HTML5、CSS3和JavaScript核心内容
2024-10-07
java开发+javaBean和函数调用+学生系统+对学生信息进行增删改查
2022-10-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人