【JavaScript】简单数据类型 与 复杂数据类型 ① ( 堆内存和栈内存 | 简单数据类型内存存储 | 复杂数据类型内存存储 )

news2024/11/29 4:01:37

文章目录

  • 一、简单数据类型
    • 1、简单数据类型简介
    • 2、简单数据类型 null 空类型的特殊性
  • 二、复杂数据类型
  • 三、堆内存和栈内存





一、简单数据类型




1、简单数据类型简介


JavaScript 中 , " 简单数据类型 “ 又称为 ” 基本数据类型 " 或 " 值类型 " , 与 简单数据类型 相对的 " 复杂数据类型 “ 又称为 ” 引用类型 " ;


简单数据类型 在 内存中存储时 , 存储的是 数据值 本身 ;

如 : 存储 number 数字类型的值 888 , 在内存中存储的就是值 888 ;

简单数据类型包括 :

  • string 字符串类型
  • number 数字类型
  • boolean 布尔类型
  • undefined 未定义类型
  • null 空类型

2、简单数据类型 null 空类型的特殊性


null 空类型 比较特殊 , 使用 typeof 运算符获取 null 类型变量的类型时 , 返回的是 object 类型 , 也就是说这是一个 " 空对象 " ;


null 空类型使用场景 : null 空类型 是一个 object 类型 , 可以理解为 " 空对象 " ;

如果定义一个变量 , 想要存储一个对象 , 但是此时对象没有进行赋值 , 可以先赋值为 null 值 ;


代码示例如下 :

        // 空类型变量
        var nullVar = null;

        // 输出 : object
        console.log(typeof nullVar);

完整代码 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 空类型变量
        var nullVar = null;

        // 输出 : object
        console.log(typeof nullVar);
    </script>
</head>

<body>
</body>

</html>

在这里插入图片描述





二、复杂数据类型



复杂数据类型 又称为 引用数据类型 ;

复杂数据类型 在内存中存储时 , 在 栈内存 中 存储的是 堆内存中的地址 , 在 堆内存 中 存储的是 复杂数据类型 的 数据内容 ;

栈内存中存储的地址 指向 堆内存中的数据 ;


复杂数据类型 都是 通过 new 关键字创建的对象 , 这个对象既包括 JavaScript 提供的内置对象 , 也包括用户自己自定义的对象 ;





三、堆内存和栈内存



栈内存 Stack 和 堆内存 Heap 是 内存管理 的 两种主要方式 ;


栈内存 由 操作系统 进行管理 , 自动进行 内存分配 和 内存释放 ;

函数的 参数值 / 局部变量 等值 , 存储到 栈内存中 ;

简单数据类型 的 值 , 直接存储到 栈内存 中 ;


堆内存 由 开发者 手动进行 内存分配 和 内存释放 ;

在高级语言中 , 开发者不进行手动释放 , 由 垃圾回收机制 完成堆内存的回收 ;

复杂数据类型 的 值 , 存储到 堆内存中 , 存储复杂数据类型后 对应的 堆内存的地址 存储到 栈内存 中 ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI口语练习软件的技术难点

实现AI口语练习软件是一项复杂的任务&#xff0c;需要攻克多项技术难点。随着人工智能技术的不断发展&#xff0c;AI口语练习软件将变得更加智能和人性化&#xff0c;为用户提供更加有效的口语练习体验。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0…

Kubeadm 1.24.x安装教程

第一章 基本环境配置 1.1 配置hosts 所有节点 修改/etc/hosts如下&#xff1a; 192.168.0.93 W31-ywzt-SIT-1 192.168.0.94 W31-ywzt-SIT-2 1.2 CentOS 7安装yum源如下 所有节点 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo…

FastLineDetector(FLD)快速直线检测器的使用方法

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 1.功能描述 opencv_contrib中有一个用于快速检测直线的类&#xff0c;叫FastLineDetector&#xff0c;下面介绍一下如何使用它&#xff0c;首先要用到一个cv:…

巴伦在接收链路中的应用

一、巴伦的定义 "巴伦"&#xff08;Balun&#xff09;&#xff0c;是一种平衡-不平衡转换器&#xff0c;通常用于将平衡信号&#xff08;如差分信号&#xff09;转换为不平衡信号&#xff08;如单端信号&#xff09;&#xff0c;或者反之。巴伦在无线通信、广播、天…

手机流畅运行470亿大模型:上交大发布LLM手机推理框架PowerInfer-2,提速29倍

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践&#xff0c;基于大语言模型和RAG技术&#xff0c;集合海量工业领域生态资源方优质产品和知识服务&#xff0c;旨在通过智能搜索、连续交互&#xff0c;实时生成个性化的内容…

GEE数据集——全球河流阻塞数据库 (GROD)1.1 版

全球河流阻塞数据库 (GROD) GROD v1.1&#xff08;文件名&#xff1a;GROD_v1.1.csv&#xff09;&#xff0c;即全球河流阻塞数据库 1.1 版&#xff0c;包含 30549 个人工识别的阻碍河流纵向流动的人为结构。谷歌地球引擎卫星地图上的所有河流障碍物都已在全球陆地卫星河宽&am…

2024年数字技术与智慧教育国际会议(DTSE 2024,7月26-28)

2024年数字技术与智慧教育国际会议&#xff08;DTSE 2024&#xff09;将于2024年7月26日在广东省广州市召开&#xff0c;本次会议专注于“数字技术与智慧教育”领域&#xff0c; 将汇集全球范围内的学者、研究人员以及教育技术开发者&#xff0c;共同探索和分享该领域内的最新学…

软件游戏缺失mfc100u.dll如何解决,教你多种有效的方法

在现代科技日新月异的时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着使用时间的增长&#xff0c;电脑也会出现各种各样的问题。其中&#xff0c;“电脑中丢失mfc100u.dll”是许多用户经常遇到的问题之一。那么&#xff0c;这个问题究竟是…

XXL-JOB分布式任务调度快速入门

文章目录 概念快速启动XXL-JOB调度初始化执行器项目配置执行器新增GLUE模式(Java)的任务新增BEAN模式&#xff08;类形式&#xff09;的任务BEAN模式&#xff08;方法形式&#xff09;的任务参考来源 概念 XXL-JOB是一个开源的分布式任务调度平台&#xff0c;它是一个轻量级、…

Web前端大作业:基于html+css+js的仿酷狗音乐项目(内附源码)

文章目录 一、项目介绍二、项目展示三、源码展示四、获取源码 一、项目介绍 课设是要仿照酷狗音乐的首页进行设计。酷狗音乐是国内知名的音乐应用程序,凭借其优秀的音乐库和智能推荐功能吸引了大量用户群体。模仿酷狗音乐的首页设计,可以让课设展现出专业水准,体现出对优秀产品…

Excel自定义排序和求和

概览 excel作为办公的常备工具&#xff0c;好记性不如烂笔头&#xff0c;在此梳理记录下&#xff0c;此篇文章主要是记录excel的自定义排序和求和 一. 自定义排序 举个例子 1. 填充自定义排序选项 实现步骤&#xff1a; 选定目标排序值&#xff1b;文件->选项->自定…

zypcy

一、浏览器调试 1、elements 2、Network 用于抓包 Preserve log&#xff1a;保留日志&#xff0c;所有日志都会被保留&#xff0c;而不是被覆盖&#xff0c;刷新前刷新后的日志都会被保留 Disable cache&#xff1a;禁止缓存&#xff0c;保证每次变化都是从服务器请求的数据&…

海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统&#xff0c;灵活、方便、人性化设计、简单易用是最大的特色&#xff0c;可快速建立一个海量内容的专业网站。海洋CMS基于PHPMySql技术开发&#xff0c;完全开源免费 、无任何加密代码。 0x02 漏洞概述 海…

SAP 中的Incoterms国际贸易条款术语解释

之前写代码建交货单的时候总是会遇到这个字段&#xff0c;通常我们可能会填FOB或者CIF或者其他&#xff0c;但并不清楚这些都是什么意思&#xff0c;偶然间看到一篇帖子对此作了解释&#xff0c;也记录分享一下。 原文地址&#xff1a; Incoterms&#xff5c;FOB、CFR和CIF&a…

pom学习笔记:kimi的自动化操作

1.先看结构&#xff1a; 声明&#xff1a;我是初学&#xff0c;可能有不合理的地方。 2.Base层。 我是把原来一个kimi的自动问答的代码改过来。 分析&#xff1a;其实我是新手&#xff0c;因为我用的浏览器是固定的&#xff0c;也没有打算和别人用。所以浏览器层面年的全部写…

C语言,struct 结构体、union共用体的使用

//状态字节&#xff0c;根据数据定义几个标志&#xff0c;标志位依据联合体内部结构体进行变量定义 //目的&#xff0c;节省内存空间&#xff0c;省去特定字节 struct STATDATA {union{unsigned char stat;struct {unsigned stat0:1;unsigned stat1:1;unsigned stat2:1;unsign…

rtl8723du android5.1 6818 (wifi 部分)(第三部分)

这部分主要就是 应用了。具体的详细框架 在 android4.4 部分写的差不多的。 之前板卡依然是使用的 mt6620 ,所以在移植的过程中,需要把之前的 wifi 的驱动一点一点的去掉。 1 kernel 的修改。 将驱动拷贝到 wireless 下。 修改Kconfig 修改Makefile 2 驱动的Makefile 的修改…

塬号星球项目介绍

开发时间&#xff1a;2024 . 02~ 至今 已经部署上线&#xff08;可以在微信里搜索“塬号星球”&#xff09;&#xff0c;仍在完善阶段。 塬号星球——周边信息社交生活服务平台 项目介绍&#xff1a;项目主要是针对于在大学有流量却不知道该如何变现的朋友&#xff0c;比…

Oracle最终会扼杀MySQL?(译)

原文网站&#xff1a;https://www.percona.com/blog/is-oracle-finally-killing-mysql/ 作者&#xff1a;Peter Zaitsev 自从Oracle收购了MySQL后&#xff0c;很多人怀疑Oracle对开源MySQL的善意&#xff0c;这篇percona的文章深入分析了Oracle已经和将要对MySQL采取的措施&a…

欢乐钓鱼大师攻略:buff大全讲解,云手机托管使用教程!

《欢乐钓鱼大师》是一款充满趣味与挑战的钓鱼模拟游戏。在这款游戏中&#xff0c;玩家不仅能够体验到钓鱼的乐趣&#xff0c;还需要通过策略性地收集与使用不同的钓鱼装备来提升自己的钓鱼技巧和效率。本文将为你提供一份详细的游戏攻略&#xff0c;帮助你在游戏中轻松上手并快…