JS第三周
栈内存与堆内存
栈内存:作用域
1.提供一个供JS代码自上而下执行的环境(代码都是在栈中执行的)
2.由于基本数据类型值比较简单,他们都是直接在栈内存中开辟一个位置,把值直接存储进去的
当栈内存被销毁,存储的基础值也随之销毁
堆内存:引用值对应的空间
1.存储引用类型值的
对象:存储的是键值对
函数:代码字符串
当前堆内存释放销毁,那么这个引用值彻底没了
堆内存的释放
当堆内存没有被
转载
2023-11-25 19:23:41
60阅读
//前言闭包,这个概念对于每位JSer而言都不陌生,它几乎伴随着每个前端入门者的初学阶段,重要到几乎每家公司面试都会问。关于闭包究竟是什么,闭包干嘛用的,网上各种回答也是五花八门,动不动就扯到隐匿变量/内存泄漏这些概念,让没有C基础的初学者越看越晕,我不能说那些是错的,不过显然对新手不太友好。曾几何时我也是被那些个故作高深的概念绕得七荤八素云里雾里,那今天这篇文章以一个简单到80岁老太都看得懂的d
转载
2024-06-15 04:33:33
118阅读
对象是引用型、复合型数据,因此对象的操作主要包括引用、复制、克隆和销毁等。引用对象对象是引用型数据,赋值操作实际上就是赋予地址。示例下面示例定义一个对象 obj,然后赋值给 obj1 后,obj 就全等于 obj1,它们都引用同一个对象,也就是说它们的值都是同一个地址。 1. var obj = { //定义对象
2. x : true,
3. y : false
4. }
5. var obj
转载
2023-07-11 21:03:42
79阅读
文档事件beforeunload事件,unload事件,load事件,error事件,pageshow事件,pagehide事件以下事件与网页的加载与卸载相关。(1)beforeunload事件beforeunload事件在窗口将要关闭,或者网页(即document对象)将要卸载时触发。它可以用来防止用户不小心关闭网页。根据标准,只要在该事件的回调函数中,调用了event.preventDefau
转载
2023-12-06 19:01:08
144阅读
什么是事件,三种事件模型事件是用户操作网页时发生的交互动作或者网页本身的一些操作。 现代浏览器一共有三种事件模型:DOM0 级事件模型,这种模型不会传播,所以没有事件流的概念,但是现在有的浏览器支持以冒泡的方式实现,它可以在网页中直接定义监听函数,也可以通过 js 属性来指定监听函数。所有浏览器都兼容这种方式。直接在 dom 对象上注册事件名称,就是 DOM0 写法。IE 事件模型,在该事件模型中
转载
2024-07-03 17:54:03
91阅读
内存释放与作用域销毁1,堆内存释放对象数据类型或函数数据类型在定义时,会开辟一个堆内存,堆内存具有一个引用地址,若堆内存的引用地址被声明的变量引用,那该堆内存被占用,此时堆内存不能被释放。释放方式:使引用堆内存地址的所有变量赋值为空对象指针null。当前堆内存若没有任何变量占用,则浏览器会在空闲时间段将其销毁。示例:var obj1 = {name:"小二"};//创建对象,形成堆内存和地址
va
转载
2023-08-18 08:16:41
83阅读
IE的 JScript 存在内存泄露的bug 想必大家都清楚或者有耳闻了。这是由于IE的内存回收管理器的一个设计错误导致的。当我们编写脚本的时候创建了交叉引用,例如如下代码: window.onload = function () {
var x = document.getElementsByTagName(’H3’);
for (var i
转载
2023-12-07 21:15:46
263阅读
堆栈内存的销毁打开一个页面,浏览器会形成两个虚拟的内存:堆内存、栈内存
栈内存存储了:变量、基本数据类型值、地址
堆内存存储了:存储了引用数据类型的值
全局作用域、私有作用域都是栈内存,为代码执行提供必要的环境,理论上来说,存储的东西越少,运行的越快堆内存的销毁• 谷歌浏览器:谷歌浏览器每隔一段时间就会在当前作用域从头到尾检查一遍,看看有没有没有被占用的空间地址,如果有,就立即对其进行
转载
2023-09-07 22:05:31
126阅读
调用栈中的数据是如何回收的?过一段示例代码的执行流程来分析其回收机制function foo(){
var a = 1
var b = {name:"极客邦"}
function showName(){
var c = 2
var d = {name:"极客时间"}
}
showName()
}
foo()从图中可以看出,原始类型的数
转载
2023-11-02 11:06:37
95阅读
JavaScript中的函数执行会形成私有的作用域。(1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间(2)作用域的不立即销毁 function fn(){
var i=10;
return function(n){
console.log(n+i++);
}
}
fn()(15);//->先执行fn,有一
转载
2023-08-26 01:53:49
430阅读
js处理事件
处理窗口事件1.onload事件当用户进入页面,而且所用页面元素完成加载时就会触发这个事件(最典型的是广告弹窗)原生的onload()事件只会触发一次2.onunload事件用户关闭窗口时触发这个事件3.onbeforeunloadonbeforeunload 的作用似乎和 onunload 一样,但两者有个很大的区别:onbeforeunload在用户开始离开页面之前
转载
2024-01-02 16:09:35
175阅读
今天做个大屏项目, 想在大屏加载所有资源前加个加载动画, 加载结束再移除, 当然肯定时在load事件里进行移除, 但是对其他的事件有点模糊了, 复习一下哦垃圾生命周期事件DOMContentLoaded, 浏览器完成HTML的加载, 并构建DOM树, 图片和样式等外部资源还没加载完成load, 浏览器加载完所有资源, 包括HTML文档, 图片, 样式等beforeunload, 用户即将离开, 用
转载
2024-01-15 09:39:16
53阅读
事件(onload) *注意点:变量加var局部变量,不加var全局变量setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。返回值:返回一个 ID(数字),可以将这个ID传递给clearInterval(),clearTimeout() 以取消执行style="display:none" (隐藏元素)●dis
转载
2024-01-20 05:23:35
56阅读
栈内存的释放全局作用域 在全局作用域下,只有当页面关闭的时候,全局作用域才会被销毁。私有作用域 一般情况下,函数执行会形成一个新的私有作用域(在ES6之前只有函数执行才会产生私有作用域),当私有作用域中的代码执行完成后,当前作用域都会主动的进行释放和销毁。
转载
2023-12-09 11:29:07
97阅读
window全局作用域->页面关掉才销毁函数执行会形成私有的作用域1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间2)作用域的不立即销毁 function fn(){
var i=10;
return function(n){
console.log(n+i++);
}
} fn()
转载
2023-06-27 18:54:45
171阅读
封装:减少代码的冗余,提高代码的重复利用率 继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能 函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关 闭包的定义:函数在调用的时候,会形成一个私有作用域,内部的变量不能被外部访问,这种保护机制叫闭包(这就意味着函数调用完毕,这个函数形成的栈内存就会被销毁) 栈内存被销毁的案例: function fn(
事件的介绍:事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水。当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小。我们可以理解为JS事件指在浏览器窗体或者 HT
转载
2023-11-26 10:58:06
106阅读
即如何释放对象的空间,如何销毁对象在JavaScript中,我们不能显式地销毁一个对象。当对象不再被引用时,垃圾回收机制会自动清除该对象以释放内存空间。
也就是说,当一个对象没有任何变量或属性引用它时,它就会成为不可访问的,随后被标记为垃圾,最终由垃圾回收机制回收。删除其中某属性,非销毁在某些情况下,我们可以将一个对象的所有属性和方法都删除掉,但这并不等同于销毁对象本身。可以使用 delete 操
转载
2023-07-02 15:59:02
88阅读
拿到新电脑或新手机总是很让人兴奋,但你知道该怎样处理旧机器吗?并不只是将它们丢掉或卖掉那么简单。你要知道,这些东西包含了你不希望陌生人或坏人看到的个人档案和资料,坏人可以利用这些信息来为自己谋利。所以当你放手旧机器前,要确保用以下步骤来完全删除你的资料。找到然后选择在你开始删除档案前,你首先要知道所有重要档案的位置,确保不会遗漏任何备份给陌生人看到。将包含个人敏感信息的资料分出优先级,这可能包括任
转载
2023-12-18 06:10:04
48阅读
javascript——对象的概念——创建对象与销毁对象
转载
2023-06-14 16:59:00
58阅读