- 博客(146)
- 收藏
- 关注
原创 JavaScript-------异常处理
什么是异常,异常就是我们在编写Javascript程序时出现的一些错误,并会在控制台中抛出这个错误,出现异常其实并不是一件坏事,相对的呢它可以提醒我们开发人员哪里出现了错误,方便我们后续的修改,能让我们的代码更加的流畅丝滑的运行,如果你对程序异常还不了解,看完该篇会让你对异常有一个初步的了解,也能在出现异常时做出相应的处理。
2025-10-19 10:26:51
235
原创 JavaScript-------深拷贝与浅拷贝
1)、基本类型:就是值类型,即在变量所对应的内存区域存储的是值,如:上面的age变量所对应的内存存储的就是值250.2)、引用类型:就是地址类型。何为地址:地址就是编号,要地址何用,就是为了容易找到。每个人的家里为什么要有一个唯一的地址,就是在邮寄时,能够找到你家。比如:我们最早的超市存包的格子,每个格子都有个编号,你存包时,服务员会把你的东西放在某个格子里,再把这个格子的编号给你(一个牌子)。你购物完毕取包时,直接给服务员你的牌子(有编号),服务员根据你的编号就会找到你的包。这个编号就是格子的地址。
2025-10-19 10:24:47
935
原创 JavaScript------原型、原型链
在js中,原型和原型链是一个很重要的知识点,只有理解了它,我们才能更深刻的理解js,在这里,我们将分成几个部分来逐步讲解。构造函数是使用了new关键字的函数,用来创建对象,所有函数都是Function()的实例原型对象是用来存放实例对象的公有属性和公有方法的一个公共对象,所有原型对象都是Object()的实例原型链又叫隐式原型链,是由__proto__属性串联起来,原型链的尽头是Object.prototype。
2025-10-16 20:06:24
927
原创 JS中new的过程发生了什么
prototype属性:每一个构造函数(function a())都有一个prototype属性,它指向构造函数的指针(constructor)。news的查找过程,现在自己的原型上查找,找不到再向他的上一层构造函数的原型上找,如果还是没有找到的话,往Object上找,找不到的话返回null。Object所以对象的实例,比如我们用的一些对象的方法,虽然你定义了,但是没有用。我们都知道对象的继承是通过原型链的,而原型链就是通过__proto__一层一层网往上找而形成原型链的,找到最后找到null。
2025-10-10 19:37:49
298
原创 JavaScript-----------forEach方法
方法是数组对象的重要组成部分。它提供了一种简洁、优雅的方式来遍历数组中的每个元素,并对其执行指定操作。方法的基本概念、用法、常见的应用场景、与其他遍历方法的对比,并提供实战示例,帮助您全面掌握这一强大的工具。方法的回调函数还可以接收当前元素的索引和原数组作为参数。数组中的每个元素执行回调函数,并将当前元素作为参数传递给回调函数。方法用于遍历数组,并对每个元素执行一次给定的回调函数。回调函数的纯粹性,避免对外部状态的修改,从而提高代码的可维护性。回调中直接修改原数组的结构,避免意外的副作用。
2025-10-10 18:59:39
872
原创 箭头函数的this指向问题
而不是执行时的对象, 定义它的时候,可能环境是window;箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this2.箭头函数中,this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是。
2025-10-09 20:30:10
892
原创 SSE概述
SSE是一种简单的事件推送技术,它允许服务器异步地向客户端发送更新,而无需客户端显式请求这些更新。这对于实时应用程序非常有用,例如股票价格更新、消息通知等。SSE基于HTTP协议,使用一个持久的HTTP连接来维持客户端和服务端之间的通信。选择哪种技术取决于你的具体需求。如果你的应用需要较低延迟的数据推送,并且可以依赖现代浏览器和服务器环境,那么SSE是一个不错的选择。如果你需要更广泛的浏览器兼容性,并且对实时性要求不是特别高,那么长链接可能更适合你。
2025-10-09 20:05:29
1011
原创 闭包的相关问题
原因是js的垃圾回收机制会从全局对象(如 window 或 global)开始,遍历所有可访问的变量 / 对象,给它们打上 “正在使用” 的标记(可达性分析)。遍历所有内存中的值,清除没有被标记的对象(即无法从全局对象访问到的对象),释放它们的内存。当外部函数执行完毕之后,其内部的所有变量和函数都会被垃圾回收机制销毁(因为它们的作用域仅限于外部的内部),为了避免被销毁,需要return 出去内部函数。
2025-09-25 20:57:05
161
原创 JavaScript内存泄漏
并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“垃圾回收程序运行的时候,会标记内存中存储的所有变量。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。这很麻烦,所以大多数语言提供自动内存管理,减轻程序员的负担,这被称为"垃圾回收机制"程序的运行需要内存。语言中,因为是手动管理内存,内存泄露是经常出现的事情。
2025-09-25 20:48:54
813
原创 js垃圾回收机制和引起内存泄漏的操作
原因:div中的ul li 得到这个div,会间接引用某个得到的li,那么此时因为div间接引用li,即使li被清空,也还是在内存中,并且只要li不被删除,他的父元素都不会被删除。1. 包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针。从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象。在操作对象时,实际上是在操作对象的引用而不是实际的对象。1. 声明了一个变量并将一个引用类型的值赋值给这个变量,这个引用类型值的引用次数就是1。
2025-09-25 20:22:30
715
原创 JS---闭包
在上面的代码示例中,a函数定义了一个名为aa的变量和一个名为b的函数,b函数引用了aa变量,因此JavaScript引擎会保留a函数的作用域链,b函数可以访问a函数的执行上下文,b函数内用到了外部函数a的变量aa,在a函数调用结束后该函数执行上下文会销毁,但会保留一部分留在内存中供b函数使用,这就形成了闭包。闭包也存在着一个潜在的问题,由于闭包会引用外部函数的变量,但是这些变量在外部函数执行完毕后没有被释放,那么这些变量会一直存在于内存中,总的内存大小不变,但是可用内存空间变小了。
2025-09-25 19:56:18
554
原创 js-----正则表达式
<script>// 定义正则表达式// 这个正则表达式表示一个形式:以m开头,n结尾,中间是6位数字// true// false// false// false</script>
2025-09-22 21:05:55
263
原创 JavaScript本地存储 --- localStorage 和 sessionStorage
本地存储(Local Storage)是指在用户浏览器中存储数据的方式,它允许 Web 应用程序将少量数据保存在用户设备上,方便页面之间、甚至关闭浏览器后的数据持久化。存储容量大:相比 Cookie 的 4KB 限制,和可以存储大约 5MB 的数据(具体大小因浏览器不同略有差异)。不会随着 HTTP 请求发送:与 Cookie 不同,本地存储的数据不会在每次请求时发送到服务器,从而减少了带宽的消耗。基于键值对存储:通过简单的键值对形式来存储和访问数据,使用方便。和。
2025-09-22 20:06:12
1087
原创 JavaScript---------History 对象详解
History 对象是浏览器的 Window 对象的一部分,它代表了浏览器的历史堆栈。每当用户在一个浏览器窗口或标签页中访问不同的页面时,这些页面都会被添加到该窗口的会话历史中。通过 History 对象,开发者可以读取历史记录的数量,并通过编程方式让用户前进或后退到指定的页面。History 对象为开发者提供了强大的浏览器历史记录管理功能。通过其丰富的 API,开发者可以轻松实现页面导航、历史状态管理等功能,尤其在构建单页应用时,和等方法显得尤为重要。
2025-09-22 20:02:39
968
原创 js立即执行函数的几种写法
通常你不应该给立即执行函数传递太多的参数,因为它很快会成为一个负担——为了理解代码是如何工作的,你不得不经常上下滚动源代码。通常,全局变量被作为一个参数传递给立即执行参数,这样它在函数内部不使用window也可以被访问到。就像其它任何函数一样,一个立即执行函数也能返回值并且可以赋值给其它变量。立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行。
2025-09-22 19:57:18
179
原创 JavaScript------navigator对象
对象是JavaScript中的一个内置对象,它提供了有关浏览器的信息。这个对象包含了用户代理(User Agent)字符串和其他与浏览器相关的能力描述,如插件、语言、操作系统信息等。这对于网页开发者来说是非常有用的,因为它可以帮助开发者检测用户的浏览器环境,从而实现浏览器兼容性处理或者功能检测。对象,开发者可以更好地适应不同的浏览器环境,提升用户体验。// 检查浏览器是否支持Geolocation。// 检查是否支持Cookies。// 获取用户代理字符串。
2025-09-22 19:48:35
405
原创 JavaScript---location对象详解
location指示了其所连接对象的url位置。和对象中都有location属性,可以通过window.location和document.location访问。如果想要获得当前文档的完整url字符串,有四种方式以上方式均可以获得“”这样的字符串location在控制台输出结果为:(Chrome浏览器)
2025-09-22 19:32:05
545
原创 JavaScript事件循环机制----event loop
由于addEventListener方法为点击事件,我们无法判断是点击事件先执行完毕还是延时函数先执行完毕,若点击事件在3s内执行,则输出结果为。由于js只能处理单线程问题,所以图片右侧处理异步任务的环节交由浏览器进行处理,浏览器将异步任务处理完成之后放到任务队列里等待js执行。二者的本质区别:各个流程的执行顺序不同。,若3s后再执行点击事件,则输出结果为。如上图所示,代码的输出结果为。
2025-09-19 21:28:13
178
原创 js节点操作
1.1 父节点对象.firstChild 查找父元素下的第一个节点 可能会有文本节点 换行。父元素节点.children[父元素节点.children.length-1] 返回最后一个子节点。2.1父节点对象.firstElementChild 查找父元素下的第一个子元素节点。2.2父节点对象.lastElementChild 查找元素的最后一个子元素节点。1. 通过父节点对象查找子节点对象(可能会有文本节点) 兼容性好。
2025-09-19 20:19:50
710
原创 5种获取JavaScript时间戳函数的方法
Date对象在JavaScript内部的表示方式是,距1970年1月1日午夜(GMT时间)的毫秒数(时间戳),我们在这里也把Date的内部表示形式称为时间戳。可以使用getTime()将Date对象转换为Date的时间戳,方法setTime()可以把Date的时间戳转换为Date的标准形式。date代表一个日期对象的实例,Date代表日期对象,date.方法名调用的为对象的成员函数。如果参数为一个字符串,将字符串视为日期的字符串表示,转换为日期。将时间对象转化为一个number类型的数值,即时间戳。
2025-09-19 19:36:06
1151
原创 js----日期对象
console.log(date) //Thu Jun 15 2023 15:50:25 GMT+0800 (中国标准时间)是指1970年01月01日00时00分00秒起至现在的毫秒数,它是一种特殊的计量时间的方式。使用场景:因为日期对象返回的数据我们不能直接使用,所以需要转换为实际开发中常用的格式。3)比如 将来时间戳 2000ms- 现在时间戳1000ms =1000ms。使用场景: 如果计算倒计时效果,前面方法无法直接计算,需要借助于时间戳完成。将来的时间戳-现在的时间戳=剩余时间毫秒数。
2025-09-18 21:31:42
262
原创 CSS的opacity 属性
当opacity属性的值应用于某个元素上时,是把这个元素(包括它的内容)当成一个整体看待,即使这个值没有被子元素继承。因此,一个元素和它包含的子元素都会具有和元素背景相同的透明度,哪怕这个元素和它的子元素有不同的opacity属性值。opacity属性指定了一个元素的透明度。换言之,opacity属性指定了一个元素后面的背景的被覆盖程度。
2025-09-18 20:23:25
485
原创 css中的伪类选择器---------nth-child()
在 CSS 中,是一个伪类选择器,用于。它允许你根据元素在兄弟元素中的位置来精准匹配元素,非常适合创建有规律的布局或样式。
2025-09-16 15:15:26
462
原创 js实现轮播图----对应图片下方小圆点高亮实现
由于小圆点通过slider-indicator类下面的li标签一一对应图片,nth-child(N)是指选择第 N 个子元素(从 1 开始计数),而i是从0开始递增,所以对应图片下方小圆点高亮需要通过n+1的方式实现。如上图所示,图片切换时,下方对应的小圆点产生高亮效果,下面是高亮小圆点的实现思路。
2025-09-16 15:13:39
168
原创 DOM---操作元素样式属性详解
className属性用于获取或设置元素的class属性值。使用className操作可以更为简便地控制元素的样式,因为我们可以通过设置类名来切换元素的外观,而不需要逐个修改内联样式。blue;此时,box的背景颜色会变成蓝色。classList是 DOM 元素提供的一个用于操作类名的接口,它允许你通过添加、移除、切换等方法灵活管理元素的类名。与className不同,
2025-09-15 19:55:57
650
原创 页面每次刷新,随机生成一个照片----实现步骤
实现前提 :文件名为连续的数字。如下图所示案例,文件名为1~6.img。实现思路:通过生成随机数来更改图片的路径,进而实现刷新图片更新。
2025-09-15 19:28:22
230
原创 js定义变量时let和cons的使用场景
------定义后,不会发生变化,就使用const,会发生变化使用let----数据发生变化也可以使用const,原因如下:由于内存中复杂数据类型存放在堆中,基础数据类型储存在栈中,所以上图中的arr(数组)会储存在内存的堆内存中,而数组的地址存储在栈中,数组通过访问栈内存中的地址进而访问堆中的数据。虽然数组arr增加‘blue’数据,但是数组指向的栈内存中的地址没有发生变化,所以可以使用const去声明数组变量。
2025-09-08 20:32:06
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅