一、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类型以及存储方式的更多相关文章

  1. 二进制、十六进制理解及int类型二进制存储方式

    二进制 0000 0000 0000 0000 0000 0000 0000 0001 // 2^0 0000 0000 0000 0000 0000 0000 0000 0010 // 2^1 00 ...

  2. Android的资源类型和存储方式简介-android学习之旅(五十二)

    android资源的类型 android资源的存储方式

  3. float和double类型的存储方式

    Float double 类型在计算机的存储方式 计算机中只认识10的二进制数,那么该如何存储小数呢? 那么我们先看Floa类型: Float在计算机(32位)中是4个字节的,具体地:第一位为符号位0 ...

  4. js三种存储方式区别

    javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookier 相同点:都保存在浏览器端,同源的 不同点: ①传递方式不同 cookie数据始 ...

  5. js 三种存储方式的区别

    javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookie 相同点:都保存在浏览器端,同源的 不同点: ①传递方式不同 cookie数据始终 ...

  6. js变量按照存储方式区分,有哪些类型,并表述其特点

    // 值类型 拷贝形式 不像引用类型是指针指向,共用空间 值类型有 undefined string number Boolean var a = 100; var b = a; var a = 20 ...

  7. C类型和存储方式的语言变量

    变量的作用域:有效射程变量 >局部变量 1.在函数中的局部变量,量在该函数结束后自己主动撤销 2.函数内的复合语句中的局部变量(比方for语句),这个变量在复合语句结束后自己主动撤销.这个变量能 ...

  8. OpenStack 虚拟机的磁盘文件类型与存储方式

    目录 文章目录 目录 虚拟机的磁盘文件类型 虚拟机磁盘文件的存放方式 QCOW2 镜像格式与 qemu-img 指令 参考文章 虚拟机的磁盘文件类型 Nova 虚拟机的虚拟磁盘主要包含有 Root D ...

  9. .NET C#教程初级篇 1-1 基本数据类型及其存储方式

    .NET C# 教程初级篇 1-1 基本数据类型及其存储方式 全文目录 (博客园).NET Core Guide (Github).NET Core Guide 本节内容是对于C#基础类型的存储方式以 ...

  10. C语言中float,double类型,在内存中的结构(存储方式)

    C语言中float,double类型,在内存中的结构(存储方式)从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以doubl ...

随机推荐

  1. APP上架因收集个人信息问题被拒绝该怎么解决?

    近年来,随着信息技术的快速发展和移动互联网应用的普及,越来越多的应用大量收集.使用个人信息,给人们生活带来便利的同时,也出现了对个人信息的非法收集.滥用.泄漏等问题,个人信息安全面临严重威胁. 201 ...

  2. 计算1+2!+3!+...+n!的和

    计算1+2!+3!+...+n!的和 Code 点击查看代码 #include<iostream> #include<vector> using namespace std; ...

  3. 10分钟做好 Bootstrap Blazor 的表格组件导出 Excel/Word/Html/Pdf

    上篇: Bootstrap Blazor 实战 通用导入导出服务(Table组件) 1.新建工程 新建工程b14table dotnet new blazorserver -o b14table 将项 ...

  4. Lyndon Word 与 Lydon 分解

    \(\newcommand\m\mathbf\) \(\newcommand\t\texttt\) \(\text{By DaiRuiChen007}\) 约定: 对于两个字符串 \(S,T\),用 ...

  5. chrome实现下载文件JS代码弹出'另存为'窗口

    1.TXT类型文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. eosio.cdt发布带来的变化

    change of version 1.3.x+,EOSIO.CDT After eos version 1.3.x, generation of cdt tools, Smart Contracts ...

  7. 快速上手python的简单web框架flask

    目录 简介 web框架的重要组成部分 快速上手flask flask的第一个应用 flask中的路由 不同的http方法 静态文件 使用模板 总结 简介 python可以做很多事情,虽然它的强项在于进 ...

  8. 12月16日内容总结——图书管理系统、聚合与分组查询、F与Q查询

    目录 一.图书管理系统讲解 二.聚合查询 三.分组查询 四.ORM中如何给表再次添加新的字段 五.F与Q查询 六.作业 一.图书管理系统讲解 1.表设计 先考虑普通字段再考虑外键字段 数据库迁移.测试 ...

  9. 【LeetCode】三数之和+四数之和(双指针)

    之所以放在一起是因为,"四数之和"的解题方法基本与"三数之和"一致 由此我们可以推出n数之和的解法 本质上,我们只是使用双指针的方法降低此类问题的时间复杂度 当 ...

  10. Linux安装KingbaseES数据库 Unsupported major.minor version错误处理

    Linux系统安装V008R006C007B0012版本KingbaseES数据库报错:Unsupported major.minor version 52.0 系统版本: [root@vm-10-3 ...