前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?
目录
- JavaScript有哪些数据类型,它们的区别?
- 数据类型
- 区别
JavaScript有哪些数据类型,它们的区别?
数据类型
JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt…
- String(字符串): 表示文本数据,使用单引号或双引号包裹。
let myString = 'Hello, World!'
- Number(数字): 表示数值,可以是整数或浮点数。
let myNumber = 42
- Boolean(布尔): 表示逻辑值,可以是
true或false.
let isTrue = true
- Undefined(未定义): 表示未赋值或不存在的值.
let myUndefined
- Null(空值): 表示空值或没有对象值.
let myNull = null
- Symbol(符号): 引入于ES6,表示唯一的、不可变的值.
let mySymbol = Symbol('unique')
- BigInt(大整数): 引入于ES2020,表示任意精度的整数.
let bigIntNumber = 123n
- Object(对象): 表示复杂数据结构,可以包含属性和方法.
let myObject = { key: 'value', number: 42 }
- Array(数组): 一种有序的集合,用于存储一组相关的数据。它可以包含各种类型的元素,包括数字、字符串、对象等。
let myArray = [1, 'Hello', { key: 'value' }, true]
新增类型:
-
Symbol(符号): 代表创建后独一无二且不可变的数据类型,用于解决可能出现的全局变量冲突问题。
-
BigInt(大整数): 是一种数字类型的数据,可以表示任意精度格式的整数,用于安全地存储和操作大整数,即使超出了 Number 能够表示的安全整数范围。
数据类型分类:
-
原始数据类型(栈中存储):
- Undefined、Null、Boolean、Number、String。
- 直接存储在栈中的简单数据段,占据空间小、大小固定,适合存储频繁使用的数据。
-
引用数据类型(堆中存储):
- Object、Array、Symbol、BigInt。
- 存储在堆中的对象,占据空间大、大小不固定。在栈中存储了指向堆中实体的指针,解释器通过指针检索引用值。
堆和栈的概念:
-
数据结构中的栈和堆:
- 栈中数据的存取方式为先进后出。
- 堆是一个优先队列,按优先级进行排序,优先级可以按照大小规定。
-
操作系统中的栈和堆:
- 栈区内存由编译器自动分配释放,存放函数的参数值、局部变量的值等,操作方式类似于数据结构中的栈。
- 堆区内存一般由开发者分配释放,如果开发者不释放,可能由垃圾回收机制回收。
这些数据类型在JavaScript中被广泛使用,可以根据需要选择合适的数据类型来存储和处理数据。注意,JavaScript是一种动态类型的语言,变量的数据类型可以在运行时改变。
区别
-
存储位置:
- 基本数据类型: 存储在栈中的简单数据段,占据空间小、大小固定。
- 复杂数据类型: 存储在堆中的对象,占据空间大、大小不固定。在栈中存储了指向堆中实体的指针,解释器通过指针检索引用值。
-
变量赋值:
- 基本数据类型: 通过值进行赋值,变量直接存储数据的值。
- 复杂数据类型: 存储在堆中,变量存储的是对象的引用,即地址。
-
复制行为:
- 基本数据类型: 拷贝的是实际的值,互不影响。
- 复杂数据类型: 拷贝的是引用,指向同一对象,一个对象的改变会影响另一个对象。
-
比较行为:
- 基本数据类型: 比较的是值是否相等。
- 复杂数据类型: 比较的是引用是否相同,即是否指向同一对象。
-
传递方式:
- 基本数据类型: 通过值传递。
- 复杂数据类型: 通过引用传递。
这些区别影响了变量在内存中的存储和操作方式,了解这些特性有助于更好地理解JavaScript中的数据类型。
持续学习总结记录中,回顾一下上面的内容:
JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt…
相关文章:
前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?
目录 JavaScript有哪些数据类型,它们的区别?数据类型区别 JavaScript有哪些数据类型,它们的区别? 数据类型 JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt… St…...
LeetCode---380周赛
题目列表 3005. 最大频率元素计数 3006. 找出数组中的美丽下标 I 3007. 价值和小于等于 K 的最大数字 3008. 找出数组中的美丽下标 II 一、最大频率元素计数 这题就是个简单的计数题,正常遍历统计数据即可,关键是你要会写代码逻辑。 代码如下&…...
archlinux 如何解决安装以后没有声音的问题
今天安装完archlinux以后发现看视频没声音 检查一下是否有 /lib/firmware/intel/sof 发现没有 如果你也是这样的话,可以尝试安装: sudo pacman -S sof-firmware 重启后再看看有没有声音: reboot 反正我有声音了...
什么是ORM思想?
1. ORM概念 ORM(Object Relational Mapping)对象关系映射模式,是一种技术,解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中,通常…...
设计接口时,为其添加签名鉴权---详细教程
一、何为签名 我们知道无论是restful api还是传统接口、亦或是其他形式接口的调用,接口签名都是非常重要的安全机制,它可以确保请求的发起者是经过认证和授权的客户端,同时也可以防止接口被攻击,请求参数被篡改等等。 用大白话来解…...
5G+物联网:连接万物,重塑智慧社区,开启未来生活新纪元,助力智慧社区的革新与发展
一、5G与物联网:技术概述与基础 随着科技的飞速发展,第五代移动通信技术(5G)和物联网(IoT)已经成为当今社会的热门话题。这两项技术作为现代信息社会的核心基础设施,正深刻地改变着人们的生活和…...
[反转链表] [合并两个有序链表][分割链表]
这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目: 2.思路 思路1:建立一个newHead,取一个节点进行头插。具体做法如下! 建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取…...
中文数据让LLM变笨?
我这里先贴一下论文的原链接: https://arxiv.org/abs/2401.10286 然后贴一下我翻译标注的下载链接:https://gitee.com/chatpaper/arXiv_top_chinese/blob/master/0801_top/%E4%B8%AD%E6%96%87%E4%BC%9A%E8%AE%A9LLM%E5%8F%98%E7%AC%A8%EF%BC%9F.pdf 先…...
【代码随想录】刷题笔记Day54
前言 差单调栈就结束代码随想录一刷啦,回家二刷打算改用python补充进博客,小涛加油!!! 647. 回文子串 - 力扣(LeetCode) 双指针法 中心点外扩,注意中心点可能有一个元素可能有两个…...
二.Winform使用Webview2在Demo1中实现地址简单校验
Winform使用Webview2在Demo1中实现地址简单校验 往期目录回顾添加对于的简单url验证提示通过上节和本节涉及到的函数有 往期目录 往期相关文章目录 专栏目录 回顾 通过一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址 我们已经知道了解决资源…...
从0开始学习C++ 第二十课:模板与泛型编程
第二十课:模板与泛型编程 学习目标: 掌握模板的基本语法和概念。学会使用函数模板来创建可重用的函数。学习如何定义类模板以实现数据结构的泛型。理解模板在C中提供的灵活性和强大功能。 学习内容: 模板的概念: 模板是C中支持…...
pcl之滤波器(一)
pcl滤波器 pcl一共是有十二个主要模块,详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块,官网一共是提供了6个例程,今天先来看第一第二个。 直通…...
java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)
在java项目中,如果需要大量的DB查询,导致缓存过多,项目运行缓慢,可以设置在select查询时,添加二级缓存的清空。 如果没有去配置flushCache、useCache,那么默认是启用缓存的。 1,flushCache默认…...
Unity3D控制人物移动的多种方法
系列文章目录 unity知识点 文章目录 系列文章目录前言一、人物移动之键盘移动1-1、代码如下1-2、效果 二、人物移动之跟随鼠标点击移动2-1、代码如下2-2、效果 三、人物移动之刚体移动3-1、代码如下3-2、效果 四、人物移动之第一人称控制器移动4-1、代码如下4-2、效果 五、And…...
无人机打击激光器
激光器的应用非常广泛,涵盖了多个领域。以下是一些主要的激光器应用: 医疗领域:激光器在医疗行业中有着重要应用,比如用于激光手术(如眼科手术)、皮肤治疗、牙科治疗、肿瘤治疗等。 工业制造:在…...
Lingo数学建模基础
1.基本运算符 1.1算数运算符 1.2逻辑运算 #not# 否定操作数的逻辑值,一元运算符 #eq# 若两运算数相等,则为true,否则为false #ne# 若两运算数不相等,则为true,否则为false #gt# 若左边运算数严格大于右边,则为true,否则为…...
finalshell连接linux的kali系统
kali的ssh服务似乎是默认关闭的,笔者在玩CentOS系统时可以直接用finalshell完成连接,但kali不行,需要先手动开启ssh服务。 开启kali的ssh服务 输入【ssh start】命令开启ssh服务,可以用【ssh status】命令查看ssh状态,…...
2、Line Charts折线图
可视化时间趋势 现在你已经熟悉了编码环境,是时候学习如何制作自己的图表了! 在本教程中,您将学习足够的Python来创建专业外观的折线图。然后,在接下来的练习中,您将使用您的最新技能处理真实世界的数据集。 本课程数据集夸克网盘下载链接:https://pan.quark.cn/s/a235ac…...
shell脚本获得所有数据库备份(整库备份,表级备份)
数据库备份到天翼云对象存储OBS https://blog.csdn.net/qq_34631220/article/details/135755894 1、获得所有数据库 #!/bin/sh HOSTNAME"ip" #数据库信息 PORT"3306" USERNAME"root" PASSWORD"" DBNAME"yusuan" #数据库…...
REVIT二次开发万能刷
将这两个参数赋予其他参数 步骤2 将来做个可以调控的版本 using System; using System.Collections.Generic; using System.Lin...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
