耀极客论坛

 找回密码
 立即注册
查看: 571|回复: 0

浅析JS原始值和引用值问题

[复制链接]

193

主题

176

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2022-5-8 01:01:26 | 显示全部楼层 |阅读模式
  如果一个值是引用类型的,那么它的存储空间将从堆中分配。由于引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址,这篇文章主要介绍了JS原始值和引用值 ,需要的朋友可以参考下
原始值->基本类型
  Number String Boolean undefined null
  存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置
  动态语言->脚本语言->解释型语言->弱类型语言
  静态语言->编译型语言->强类型语言
  null 空值 初始化组件 函数 销毁函数 占位
引用值
  object array function date RegExp
  如果一个值是引用类型的,那么它的存储空间将从堆中分配。由于引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。
ex
  1. ‹!DOCTYPE html>
  2. ‹html lang="en">
  3. ‹head>
  4.     ‹meta charset="UTF-8">
  5.     ‹title>D1‹/title>
  6. ‹/head>
  7. ‹body>
  8.     ‹script type="text/javascript">
  9.         var arr1 = [1,2,3,4];
  10.         var arr2 = arr1;
  11.         //arr1.push(5);//此时打印arr2为1,2,3,4,5
  12.         arr1 = [1,2];//重新赋值不会影响arr2
  13.         document.write(arr2);
  14.     ‹/script>
  15. ‹/body>
  16. ‹/html>
复制代码
  到此这篇关于JS原始值和引用值 的文章就介绍到这了,更多相关JS原始值和引用值 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|耀极客论坛 ( 粤ICP备2022052845号-2 )|网站地图

GMT+8, 2022-12-10 03:46 , Processed in 0.074849 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表