js类型以及存储方式
一、js内置类型
基础类型:String, number, null, undefine, boolean, symbol, bigint
引用类型:Object(包含普通对象Object,数组对象Array,正则对象Regexp,日期对象Date,数学函数Math,函数对象function)
!注:js不支持创建自定义类型机制,所有的类型都是这8个类型之一。
二、存储位置
基础数据类型:存放在栈内存,被引用或被拷贝时候,会创建一个完全相等的变量,占据空间小,大小固定,属于被频繁使用的数据类型。
引用数据类型:存放在堆内存中,引用数据类型会在栈内存存储数据的地址,当使用引用类型时候,在栈内存获取堆内存地址,然后去堆内存根据地址寻找数据。多个栈内存可以使用同一个堆内存地址,所 以当其中一个变量改变了共享的数值时,其他所有的共享该值的变量都会改变。
三、js数据如何存储在内存中
js执行过程中,有三种类型的内存空间(代码空间,栈空间,堆空间),代码空间存储可执行的代码,基础类型存储在栈空间,引用类型存储在堆空间,访问引用类型的时候要先去栈空间获取存储地址。
在编译过程中,如果js引擎判断到一个闭包,也会在堆空间创造一个closure(fn)对象,用来保存闭包中的变量,所以闭包中的变量也会存储在堆空间。
!注:function使用引用参数时传入的是存储在栈空间的地址,使用return返回,会将创建一个新堆地址将返回值存入。
js类型以及存储方式的更多相关文章
- 二进制、十六进制理解及int类型二进制存储方式
二进制 0000 0000 0000 0000 0000 0000 0000 0001 // 2^0 0000 0000 0000 0000 0000 0000 0000 0010 // 2^1 00 ...
- Android的资源类型和存储方式简介-android学习之旅(五十二)
android资源的类型 android资源的存储方式
- float和double类型的存储方式
Float double 类型在计算机的存储方式 计算机中只认识10的二进制数,那么该如何存储小数呢? 那么我们先看Floa类型: Float在计算机(32位)中是4个字节的,具体地:第一位为符号位0 ...
- js三种存储方式区别
javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookier 相同点:都保存在浏览器端,同源的 不同点: ①传递方式不同 cookie数据始 ...
- js 三种存储方式的区别
javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookie 相同点:都保存在浏览器端,同源的 不同点: ①传递方式不同 cookie数据始终 ...
- js变量按照存储方式区分,有哪些类型,并表述其特点
// 值类型 拷贝形式 不像引用类型是指针指向,共用空间 值类型有 undefined string number Boolean var a = 100; var b = a; var a = 20 ...
- C类型和存储方式的语言变量
变量的作用域:有效射程变量 >局部变量 1.在函数中的局部变量,量在该函数结束后自己主动撤销 2.函数内的复合语句中的局部变量(比方for语句),这个变量在复合语句结束后自己主动撤销.这个变量能 ...
- OpenStack 虚拟机的磁盘文件类型与存储方式
目录 文章目录 目录 虚拟机的磁盘文件类型 虚拟机磁盘文件的存放方式 QCOW2 镜像格式与 qemu-img 指令 参考文章 虚拟机的磁盘文件类型 Nova 虚拟机的虚拟磁盘主要包含有 Root D ...
- .NET C#教程初级篇 1-1 基本数据类型及其存储方式
.NET C# 教程初级篇 1-1 基本数据类型及其存储方式 全文目录 (博客园).NET Core Guide (Github).NET Core Guide 本节内容是对于C#基础类型的存储方式以 ...
- C语言中float,double类型,在内存中的结构(存储方式)
C语言中float,double类型,在内存中的结构(存储方式)从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以doubl ...
随机推荐
- 从工具到实践:如何在GitHub上保障开源项目安全?
1998年,Christine Peterson创造了 "开源软件"这个词.她解释道:"这是刻意为之,为了让其他人更容易理解这个领域".同年,O'Reilly组 ...
- 3_多维数组转一维数组 reduce()
一,二维数组转一维数组 1 //1. 二维数组转一维数组 2 let arr = [[0,1],[2,3],[4,5]] 3 let newArr = arr.reduce((pre,cur) =&g ...
- Hadoop详解(02)Hadoop集群运行环境搭建
Hadoop详解(02)Hadoop集群运行环境搭建 虚拟机环境准备 虚拟机节点数:3台 操作系统版本:CentOS-7.6-x86-1810 虚拟机 内存4G,硬盘99G IP地址分配 192.16 ...
- 小样本利器5. 半监督集各家所长:MixMatch,MixText,UDA,FixMatch
在前面的几个章节中,我们介绍了几种基于不同半监督假设的模型优化方案,包括Mean Teacher等一致性正则约束,FGM等对抗训练,min Entropy等最小熵原则,以及Mixup等增强方案.虽然出 ...
- Apache RocketMQ 5.0 笔记
RocketMQ 5.0:云原生"消息.事件.流"实时数据处理平台,覆盖云边端一体化数据处理场景. 核心特性 云原生:生与云,长与云,无限弹性扩缩,K8s友好 高吞吐:万亿级吞吐保 ...
- MySQL 索引的创建、删除
MySQL中索引的创建有三种方法,索引的删除有两种方法. 一.创建索引 (1)使用create index # 1.创建普通索引 create index 索引名 on 表名 (列名[(限制索引长度) ...
- antd 3.x升4.x踩坑之路~
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 兼容性问题 第三方依赖兼容问题 React - 最低 v16.9,部 ...
- 工具-使用org.openjdk.jol查看对象在内存中的布局
1 添加依赖 <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core& ...
- iTab浏览器插件使用教程
iTab浏览器插件 iTab是一个好看好用的自定义卡片式浏览器新标签页扩展. 安装iTab标签页扩展后,您将告别呆板无趣的原生标签页,享受iTab标签页为您带来的个性化新体验: iTab资源 安装教程 ...
- Android面试-字节一面
距离上次跳槽已经过了3年多,突然看到字节的HR来捞.想着自己好久没面了,就打算去试试看. 0. 准备 视频面试,不用去现场真的太赞了.由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备.面试当天看了 ...