JavaScript基本数据类型以及内存分配
js 的基本数据类型
js 一共有六种基本数据类型,分别是 Undefined、Null、Boolean、Number、String,还有在 ES6 中新增的 Symbol 类型,
代表创建后独一无二且不可变的数据类型,它的出现我认为主要是为了解决可能出现的全局变量冲突的问题。
JavaScript 有几种类型的值
涉及知识点:
- 栈:原始数据类型(Undefined、Null、Boolean、Number、String)
- 堆:引用数据类型(对象、数组和函数)
两种类型的区别是:存储位置不同。
原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。
引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定。如果存储在栈中,将会影响程序运行的性能;引用数据类型在
栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实
体。
js 可以分为两种类型的值,一种是基本数据类型,一种是复杂数据类型。
基本数据类型…
复杂数据类型指的是 Object 类型,所有其他的如 Array、Date 等数据类型都可以理解为 Object 类型的子类。
两种类型间的主要区别是它们的存储位置不同,基本数据类型的值直接保存在栈中,而复杂数据类型的值保存在堆中,通过使用在栈中
保存对应的指针来获取堆中的值。
堆和栈的区分
堆和栈的概念存在于数据结构中和操作系统内存中。
在数据结构中,栈中数据的存取方式为先进后出。而堆是一个优先队列,是按优先级来进行排序的,优先级可以按照大小来规定。完全
二叉树是堆的一种实现方式。
在操作系统中,内存被分为栈区和堆区。
栈区内存由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
堆区内存一般由程序员分配释放,若程序员不释放,程序结束时可能由垃圾回收机制回收。
JavaScript基本数据类型以及内存分配相关推荐
- 【JavaScript-进阶】详解数据类型,内存分配,API元素对象获取
目录 前言 1.数据类型 1.简单数据类型和复杂数据类型 2.堆和栈 2.webApi 1.API 2.DOM是啥? 3.如何获取元素? 1.根据ID获取 编辑 2.根据标签名获取 3.通过HTML ...
- javascript中变量的内存分配,以及const VS let
作为前端开发者,我们每天都在初始化数不尽的变量.js中有基础数据和引用数据,那么他们是在js内存中是如何分配的呢?如果是初级开发者,可能对此有些模糊不清,那么接下来可以了解下关于变量内存分配,以及co ...
- Java实例化对象过程中的内存分配
问题引入 这里先定义一个很不标准的"书"类,这里为了方便演示就不对类的属性进行封装了. class Book{String name; //书名double price; //价格 ...
- Js面向对象和数据类型内存分配(转)
一 Js基本数据类型以及内存情况 1 Undefined Undefined类型只有一个值undefined,在使用了声明但未初始化的变量的时候,这个变量值就是undefined 1 var hi; ...
- 【 C 】经典抽象数据类型(ADT)之内存分配
C中的一些抽象数据类型(ADT)如链表.堆栈.队列和树等,链表已经在前几篇博文有所讨论,见: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) [ C ] ...
- C++ 高级数据类型(四)—— 动态内存分配
到目前为止,我们的程序中我们只用了声明变量.数组和其他对象(objects)所必需的内存空间,这些内存空间的大小都在程序执行之前就已经确定了.但如果我们需要内存大小为一个变量,其数值只有在程序运行时 ...
- stm32h7内存分配_【STM32H7教程】第9章 STM32H7重要知识点数据类型,变量和堆栈...
第9章 STM32H7重要知识点数据类型,变量和堆栈 本章教程为大家介绍数据类型,变量和堆栈的相关知识. 9.1 初学者重要提示 9.2 数据类型 9.3 局部变量和全局变量 9.4 堆栈 9.5 ...
- JavaScript内存分配及垃圾回收机制
JavaScript内存分配及垃圾回收机制 简介 像C语言这样的高级语言一般都有底层的内存管理接口,比如 malloc()和free().另一方面,JavaScript创建变量(对象,字符串等)时分配 ...
- 可视化分析js的内存分配与回收
之前写了一篇文章浏览器是怎么看闭包的,发现有些读者对js内存分配与回收懵懵懂懂,理解文章的配图有些困难,我想主要是因为配图省略了一些细节.今天专门写一篇关于js内存分配回收的文章,帮助大家理解js代码 ...
最新文章
- np.squeeze()函数
- numpy中的转置Transpose和.T以及轴对换swapaxis
- Solid Converter PDF
- Postman使用方法示例
- 如何设置windows下xampp的phpMyAdmin外网访问?
- SpringBoot+jquery实现post提交表单并添加隐藏域属性完成编辑功能
- hdu 1698(线段树区间更新)
- NSUInteger和NSInteger和int
- 10个开源免费的电子商务平台(转自伯乐在线)
- Axure元件库:ElementUI元件、蚂蚁金服元件
- HBuilder工作笔记002---HBuilder打包IOS应用测试IOS应用
- 益智类游戏关卡设计:逆推法--巧解益智类游戏关卡设计
- 餐厅点餐系统设计思路
- HDU6069 欧拉筛法+约数定理+计算技巧。
- js调用打印机打印网页字体总是缩小一号的解决方法
- 计算机术语access,计算机英语词汇术语:access(存取,访问)
- 为什么计算机关机慢,开机为什么慢?电脑开机速度慢的原因
- python进阶数据分析_数据分析--Part 2: Python进阶
- 无力吐槽CSDN博客设计
- iOS7适配问题总结