iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >javascript中常量池和堆的区别有哪些
  • 235
分享到

javascript中常量池和堆的区别有哪些

2024-04-02 19:04:59 235人浏览 泡泡鱼
摘要

本篇内容介绍了“javascript中常量池和堆的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“javascript中常量池和堆的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

javascript中常量池和堆的区别:1、常量池用来存放常量和基本数据类型,而堆用来存储复杂数据类型;2、常量池的系统效率较高,而堆需要分配空间和地址,还要把地址存到栈中,所以效率低于栈(常量池)。

javascript中常量池和堆的区别有哪些

教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript的内存分为栈内存,堆内存,常量池,常量池一般都归结在栈中

  • 栈内存:用来存储基本数据类型

  • 常量池:用来存放常量 基本数据类型(一般把它归类到栈内存中)

  • 堆内存:用来存储复杂数据类型

当变量存储的基本数据类型时,该变量的值则存储在栈内存中

当变量存储的是复杂数据类型时,该变量值则是一个js分配的内存地址,该地址指向了在堆内存中的复杂数据类型

栈内存(常量池)由于它的特点,所以它的系统效率较高。 堆内存需要分配空间和地址,还要把地址存到栈中,所以效率低于栈。

栈内存

由于基本数类型占用空间少,大小固定,且被频繁使用,因此保存在栈内存中

以基本数据类型之一的数值型(Number)为例:

当我们声明一个基本数据类型变量时,会在栈内存中存储变量名和具体值

javascript中常量池和堆的区别有哪些

当我们使用console.log(a) 时,我们输出的是对应的值

堆内存

由于复杂数据类型占用空间大,大小不固定,存栈中影响性能,所以存放在堆内存中

javascript中常量池和堆的区别有哪些

当我们声明变量来存储一个复杂数据类型时,会在栈内存中生成一个变量名和一个具体值,而这个具体值是JS分配的一个内存引用地址,这个地址指向了存放在堆内存中,我们所创建的复杂数据类型。当我们调用该变量时,解析器会根据变量对应的引用地址,引用对应的对象。

变量的复制

基本数据类型的复制:

var num1=5;
var num2=num1;

上述代码中,num1和num2其实是两个不同的变量,它们之间的操作互不相关,这是因为在js中,这种变量复制其实是生成一个a变量的副本(即num2=1)

如图

javascript中常量池和堆的区别有哪些

复杂数据类型的复制:

var person={name:'李华'}; //创建一个对象
var per=person ; //进行对象的复制

与基本数据类型变量的复制不同的是,当我们复制复杂数据类型对象时,其本质是复制该变量的内存引用地址,因此person和per引用地址是相同的,它们都引用了同一个对象,无论是操作person还是per,都是在操作内存中的同一个对象

如图:

javascript中常量池和堆的区别有哪些

函数参数的传递其实是一种变量复制

var x=1;
function fun (x){
    var y=x+1;
    
}

“javascript中常量池和堆的区别有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: javascript中常量池和堆的区别有哪些

本文链接: https://www.lsjlt.com/news/88807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript中常量池和堆的区别有哪些
    本篇内容介绍了“javascript中常量池和堆的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • JavaScript中栈和堆的区别有哪些
    本篇内容主要讲解“JavaScript中栈和堆的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中栈和堆的区别有哪些”吧! ...
    99+
    2024-04-02
  • php中变量和常量有哪些区别
    php中变量与常量的区别有以下几点名称不同php中变量名需使用($)符号进行修饰,常量名则不需要,变量名建议使用小写,常量名建议使用大写。定义方式不同php中变量一般在赋值时进行定义,无法使用关键字或函数进行定义,而常量必须使用define...
    99+
    2024-04-02
  • JavaScript中常量和变量有什么区别
    这篇文章给大家介绍JavaScript中常量和变量有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。区别:变量可重新声明、可重新赋值;而常量一旦声明则无法改变的量,不可重新声明,不可重新赋值。变量可只声明,无赋值...
    99+
    2023-06-14
  • 常量和变量在javascript中有什么区别
    本篇文章为大家展示了常量和变量在javascript中有什么区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。区别:常量表示一些固定不变的数据,必须要有初始值,且值在程序的运行中不可以发生改变;而变...
    99+
    2023-06-14
  • php常量和静态变量的区别有哪些
    这篇文章主要为大家展示了“php常量和静态变量的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php常量和静态变量的区别有哪些”这篇文章吧。php中常量和静态变量的区别:1、常量都是不...
    99+
    2023-06-29
  • golang中堆与栈的区别有哪些
    本篇内容介绍了“golang中堆与栈的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!堆与栈的区别:1、堆是用于存放进程执行中被动态...
    99+
    2023-07-05
  • php中变量与常量有哪些区别
    这篇文章给大家分享的是有关php中变量与常量有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、常量只能用define()函数或const关键字定义;而变量没有定义的关键字或函数,在赋值的时候被定义...
    99+
    2023-06-25
  • java中整型常量和整型变量的区别有哪些
    这篇文章主要为大家展示了“java中整型常量和整型变量的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中整型常量和整型变量的区别有哪些”这篇文章吧。我下图代码第五行和第九行分别...
    99+
    2023-06-02
  • javascript中writeln和write的区别有哪些
    这篇文章主要介绍javascript中writeln和write的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript中writ...
    99+
    2024-04-02
  • javascript和typescript的区别有哪些
    这篇“javascript和typescript的区别有哪些”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“javascript和typescript的区别有哪些”,小编整理了以下知识点,请大家...
    99+
    2023-06-06
  • PHP和JavaScript的区别有哪些
    PHP和JavaScript的区别有:1、PHP中实参数小于形参就会报错,而JavaScript中没有限制;2、两者使用的字符串连接符不同,PHP使用“.”,而JavaScript使用“+”;3、数组相加的方法不同,PHP使用“+”,而Ja...
    99+
    2024-04-02
  • c++和javascript的区别有哪些
    本篇文章为大家展示了c++和javascript的区别有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。区别:1、C++是静态语言,而javascript是动态语...
    99+
    2024-04-02
  • javascript和java的区别有哪些
    这篇文章主要介绍了javascript和java的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Java 和 JavaScript 不同之处: ...
    99+
    2023-06-27
  • javascript和asp的区别有哪些
    这篇文章主要介绍javascript和asp的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、ASP是一种服务器端脚本语言,而Java...
    99+
    2024-04-02
  • xml和javascript的区别有哪些
    这篇文章主要讲解了“xml和javascript的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“xml和javascript的区别有哪些”吧! ...
    99+
    2024-04-02
  • javascript和es的区别有哪些
    这篇文章主要介绍“javascript和es的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript和es的区别有哪些”文章能帮助大家解决问题...
    99+
    2024-04-02
  • jquery和javascript的区别有哪些
    小编给大家分享一下jquery和javascript的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!jquery 就对 javascript 的一个扩展...
    99+
    2023-06-27
  • javascript中var和let有哪些区别
    这篇文章主要介绍了javascript中var和let有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • javascript中call和apply有哪些区别
    今天小编给大家分享一下javascript中call和apply有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作