ES的数据类型:
原始类型(值存在栈内存中): Number、String Boolean、undefined、null
charAt(index)返回该index所在的字节,charCodeAt(index)返回该index所在字节的Unicode值。
undefined和null不能和数字进行比较。

引用类型(值存在堆内存中): Object、Function、Array、Date、Math、RegExp ...
______________________________________________________________________________________
堆(heap)和栈(stack)

栈内存:
将栈当做一栋房子,房子里面有很多房间,此时的房间名为系统定义的二进制数字,
当声明一个变量(变量声明永远在栈中,与赋的值无关)时栈为它分配一个房间,房间名为变量名,
当未赋值时,房间里面系统默认放undefined,当变量赋原始类型值时,房间内放该原始值,
当变量赋引用类型时,房间内放置该引用值在堆中的地址。
栈的特性:先进去的东西后出来,后进去的东西先出来。

堆内存:
堆内存也可以看做一个房子,堆内存的房间放的是引用类型的值的集合,而指向该房间的地址存放在栈内存的房间里。

原始值具有不可改变的特性:
比如将一个原始值放在一个房间里时,该值就不能再取出来了,
除非栈内存满了,它的值就会被新的值覆盖,这种方式称为形成二次覆盖。
若栈内存没满,当一个变量再次赋值时,该变量就会脱离原来的房间,去占据下一个房间,并把新赋的值放进去。
旧值的房间名就再次变成了栈内存的一串标准数字。

栈内存中赋值属于拷贝: 拷贝的是一个原始值或引用地址。

ES之值类型以及堆和栈的更多相关文章

  1. 图解C#的值类型,引用类型,栈,堆,ref,out

    C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 ...

  2. C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)

    前言 之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处. 本文的重点就是:值类型直接存储其值,引 ...

  3. 值类型,引用类型,栈,堆,ref,out

    在网上收集... C#的值类型,引用类型,栈,堆,ref,out C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C# ...

  4. 转:图解C#的值类型,引用类型,栈,堆,ref,out

    C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 ...

  5. C#基础(四)--值类型和引用类型,栈和堆的含义

    本文主要是讨论栈和堆的含义,也就是讨论C#的两种类据类型:值类型和引用类型: 虽然我们在.net中的框架类库中,大多是引用类型,但是我们程序员用得最多的还是值类型. 引用类型如:string,Obje ...

  6. 定义类+类实例化+属性+构造函数+匿名类型var+堆与栈+GC回收机制+值类型与引用类型

    为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会. 面向对象编程也叫做OOP编程 简单来说 ...

  7. C++ : 从栈和堆来理解C#中的值类型和引用类型

    C++中并没有值类型和引用类型之说,标准变量或者自定义对象的存取默认是没有区别的.但如果深入地来看,就要了解C++中,管理数据的两大内存区域:栈和堆. 栈(stack)是类似于一个先进后出的抽屉.它的 ...

  8. .NET的堆和栈02,值类型和引用类型参数传递以及内存分配

    在" .NET的堆和栈01,基本概念.值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配.我们知道:当执行一个方法的时 ...

  9. JavaScript值类型与执行环境和垃圾处理机制

    JavaScript变量分为基本值类型和引用值类型,基本值类型就是以下这五种:Boolean,Number,String,Null,Undefined.基本值类型和引用值类型具有以下特点: 1.基本值 ...

随机推荐

  1. shuf乱序排列

    如何从文件中随即选取1000行内容呢?我们可以使用shuf命令 shuf [ 其中,shuf会读取file中的内容,并生成乱序的排列,进而使用head命令,取出前1000行

  2. Chapter1-data access reloaded:Entity Framework(下)

    1.4 Delving deep into object/relational differences 深入挖掘对象关系的不同 理解面向对象和关系世界的不同是重要的,因为他会影响你设计一个对象模型或者 ...

  3. 队列,管道,manager模块

    ###生产者消费者关系### 主要是解耦(高内聚,低耦合),借助队列来实现生产者消费者 模型 栈:先进后出(First In Last Out 简称:FILO) 队列:先进先出(First In Fi ...

  4. Hessian Matrix 多元函数的极值 半正定矩阵 正定矩阵

    https://baike.baidu.com/item/黑塞矩阵/2248782?fr=aladdin 海塞矩阵 Hasse https://baike.baidu.com/item/半正定矩阵

  5. JSON: Circular Dependency Errors

    If you’re using Object Relational Mapping frameworks like Hibernate, and are using the bi-directiona ...

  6. ubuntu安装ibus-goolepinyin通用方法

    1:获取安装包 http://code.google.com/p/libgooglepinyin/downloads/list

  7. 修改phpmyadmin中的默认超时时间

    phpmyadmin在使用过程中经常出现"登陆超时(1440秒未活动),请重新登录",很烦 解决方法如下: 第一步: 修改php.ini,找到 session.gc_maxlife ...

  8. idea output 悬浮浮动问题

    参考:https://www.cnblogs.com/thinkingandworkinghard/p/6306800.html 点这个就ok

  9. 【413】C 语言 Command line

    Command-Line Arguments All the executable programs above have a main(void) program more generally, e ...

  10. zoj3955:Saddle Point(想法题)

    传送门 题意 给出n*m的矩阵,询问所有子矩阵中鞍点的个数 鞍点定义:在行唯一最小,在列唯一最大 分析 我们遍历每个点,计算该点对于答案的贡献即可. 每个点的贡献为\((2^{numa[i][j]}) ...