【JavaScript】基本数据类型有哪些?

基本数据类型(Primitive Types):

  1. 字符串(String):表示文本数据,例如 "hello"
  2. 数字(Number):表示数值,包括整数和浮点数,例如 423.14
  3. 布尔值(Boolean):表示逻辑值,即 truefalse
  4. 空值(Null):表示一个空值或者未定义的值,只有一个取值 null
  5. 未定义(Undefined):表示未定义的值,只有一个取值 undefined
  6. Symbol:表示唯一的标识符,ES6 引入的新类型,用于创建对象的唯一属性键。
  7. BigInt:在 Javascript 中是一个数字的原始值,它可以表示任意大小的整数。使用 BigInt,你可以安全地存储和操作巨大的整数,甚至超过 Number 的安全整数限制。

引用数据类型(Reference Types):

  1. 对象(Object):表示复杂的数据结构,包括数组、函数、日期、正则表达式等。对象是引用类型的基础,它们存储在堆内存中,通过引用来访问。

区别:

  1. 存储位置

    • 基本数据类型的值直接存储在栈内存中,它们的值是固定的,保存在变量访问的位置。
    • 引用数据类型的值存储在堆内存中,而变量中存储的是对堆内存中实际对象的引用,而不是对象本身。
  2. 赋值与复制

    • 当将一个基本数据类型的值赋给另一个变量时,会复制该值的副本。
    • 当将一个引用数据类型的值赋给另一个变量时,会复制引用,即两个变量指向同一个对象。所以直接访问到的是引用地址。
// 基本数据类型
let a = 5;
let b = a; // b 被赋值为 a 的副本
a = 10;
console.log(a); // 输出 10
console.log(b); // 输出 5,b 的值没有受到 a 的改变影响

// 引用数据类型
let obj1 = { name: "John" };
let obj2 = obj1; // obj2 被赋值为 obj1 的引用
obj1.name = "Alice";
console.log(obj1.name); // 输出 "Alice"
console.log(obj2.name); // 输出 "Alice",因为 obj1 和 obj2 指向同一个对象
  1. 不可变性
    • 基本数据类型是不可变的,一旦创建,其值就不能被修改。值被称为简单值或者原始值。无法动态添加属性。
    • 引用数据类型的值是可变的,可以修改其属性或元素。值被称为复杂值或者引用值。可以动态添加属性。
// 基本数据类型的不可变性
let str = "hello";
str[0] = "H"; // 这里没有影响,因为字符串是不可变的
console.log(str); // 输出 "hello"

// 引用数据类型的可变性
let arr = [1, 2, 3];
arr[0] = 0; // 修改数组的元素
console.log(arr); // 输出 [0, 2, 3]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

德国著名自动化公司Festo设计了一款仿生蜜蜂,仅重34g,支持多只蜜蜂编队飞行!...

德国著名的气动元件研发及自动化解决方案供应商Festo公司近日展示了一款仿生蜜蜂(BionicBee),重量只有34g,却完全可以实现自主飞行,还支持多只相同的蜜蜂机器人编队飞行。 BionicBee 重约 34 克,长 22 厘米…

二叉树的前序,中序,后序遍历

二叉树可以分为左子树,右子树和根节点。同时左子树和右子树又可以分为新的左子树和右子树加上新的根节点,以此类推。 二叉树的前序,中序,后序遍历也叫前根遍历,中根遍历,后根遍历或者前序遍历,…

【Vue 2.x】学习vue之三路由

文章目录 Vue三路由第十章1、vue中的路由vue的应用分为a、多页面应用b、单页面应用 2、路由的基本应用1、基础2、使用3、加载 3、vue组件的分类1、普通组件2、路由组件 4、路由的嵌套5、路由传递Query参数1、拼接参数传递2、路由传递对象 6、简化路由1、命名路由 7、parms传递参…

控制台主机不能运行,切换终端实现RPG运行

鄙人转载,主要是移植过程中使用小熊猫C2.25.1 过程中,字符集不同,导致某些空格 从bilibili专栏粘贴导致出现符号不匹配,但是编辑器不能替换 用原来的devc 5.11 发现问题,读出额外的英文? 使用文件替换&…

C语言贪吃蛇项目

今天给大家带来一款简单的贪吃蛇游戏,一起随我来看看吧 游戏效果: 实现基本的功能: • 贪吃蛇地图绘制 • 蛇吃⻝物的功能:(上、下、左、右⽅向键控制蛇的动作) • 蛇撞墙死亡 • 蛇撞⾃⾝死亡 • 计算得分…

5.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式:malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) (了解) 4. 常…

【ARMv8/v9 系统寄存 3 -- system counter CNTPCT_EL0】

文章目录 ARMv8/v9 system countersystem counter读取函数实现 ARMv8/v9 system counter 所有使用Arm处理器的系统中都会包含一个标准化的通用定时器(Generic Timer)框架。这个通用定时器系统提供了一个系统计数器(System Counter&#xff0…

ps科研常用操作,制作模式图 扣取想要的内容元素photoshop

复制想要copy的图片, 打开ps---file-----new ,ctrolv粘贴图片进入ps 选择魔棒工具,点击想要去除的白色区域 然后,cotrol shift i,反选, ctrol shiftj复制,复制成功之后,一定要改…

UnityWebGL获取话筒实时数据

看了木子李大佬的数字人https://digital.lkz.fit/之后,我也想搞一个,于是开始研究起来,先从WebGL录音开始,一共试了三个插件,个个都有问题…… 1、UnityWebGLMicrophone 用起来没啥问题,但是只能录音&#…

大型企业总分支多区域数据传输,效率为先还是安全为先?

大型企业为了业务拓展需要,会在全国乃至全球各地设立分公司和办事机构,以便更好地处理当地事务,并进行市场的开拓和客户维护,此时,企业内部就衍生出了新的业务需求,即多区域数据传输。 多区域很难准确定义&…

【大语言模型LLM】-基于ChatGPT搭建客服助手(1)

🔥博客主页:西瓜WiFi 🎥系列专栏:《大语言模型》 很多非常有趣的模型,值得收藏,满足大家的收集癖! 如果觉得有用,请三连👍⭐❤️,谢谢! 长期不…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过路径优化解决钢板切割问题。结合贪心算法,Floyd-Warshall等多元算法…

STM32G030F6P6TR 芯片TSSOP20 MCU单片机微控制器芯片

STM32G030F6P6TR 在物联网(IoT)设备中的典型应用案例包括但不限于以下几个方面: 1. 环境监测系统: 使用传感器来监测温度、湿度、气压等环境因素,并通过无线通信模块将数据发送到中央服务器或云端平台进行分析和监控。…

Ansys Speos|进行智能手机镜头杂散光分析

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光,是在光学设计中无意产生的,会降低相机系统的光学性能。 在本例中,光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计,并使用…

字符串函数、内存函数——补充

目录 前言 1、strchr函数 1-1 函数介绍 1-1-1 函数功能 1-1-2 函数原型 1-1-3 函数参数 1-1-4 所属库 1-1-5 函数返回值 1-2 函数简单使用 1-3 函数使用场景 1-4 函数的使用总结 1-4-1 注意事项 2、strrchr函数 2-1 函数介绍 2-1-1 函数功能 2-1-2 函数原型 2…

ubuntu入门

基础命令 cd 切换命令 ls 查看当前目录下所有的文件 cp a.c b.c 拷贝a.c 到 b.c touch a.c 创建a.c文件 mkdir file 创建文件夹file rm file 删除文件 rmdir 删除test文件夹 rmdir test/ mv 移动文件 mv a.c b.c 把a.c 替换成b.c ifconfig 查看电脑网络信息 rm xx 删…

人工电销机器人在销售行业中的重要性和作用,以及未来市场的发展前景

在追求更高效、更智能的时代,各行各业都在积极寻求新技术、新应用来提升业务流程的效率和质量。对于销售行业而言,人工电销机器人已经成为越来越受欢迎的工具之一。我们将深入探讨人工电销机器人在销售行业中的重要性和作用,以及未来市场的发…

31.Gateway网关-跨域问题

跨域 1.域名不同:www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同,端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压,可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器: yum 是基于 Red Hat 的 Linux 发行版(如 CentOS、…

【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例

peerconn的信令是通过post 消息到自己的信令线程消息来处理的PeerConnectionMessageHandler 是具体的处理器G:\CDN\rtcCli\m98\src\pc\peer_connection_message_handler.hMachinery for handling messages posted to oneself PeerConnectionMessageHandler 明确服务于 signalin…
最新文章