【零基础学JS - 7 】javaScript 中的8大数据类型

news2025/1/2 0:18:30

👨‍💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
🏆 本文收录于专栏: 零基础学JavaScript,包含JavaScript 基础知识,DOM相关知识,高级知识点,最新ES特性
————————————————————————
🔥 热门专栏:

🥇 学透CSS: 全网阅读超百万,CSDN最强CSS专栏,精通CSS全属性,不做切图仔,从订阅本专栏开始!

🥇 SprinbBoot + Vue3 项目实战: 新鲜出炉的2023实战系列博客,配套视频,用心打磨,篇篇精品.持续更新,值得订阅!

文章目录

  • JavaScript 数据类型
  • JavaScript String-字符串
  • JavaScript Number-数字
  • JavaScript BigInt
  • JavaScript Boolean-布尔
  • JavaScript undefined-未定义
  • JavaScript null
  • JavaScript Symbol
  • JavaScript Object-对象
  • JavaScript 类型
  • JavaScript typeof

image-20230518225130298

在本文中,你将通过示例学习 JavaScript 中的各种数据类型。

JavaScript 程序中可以使用不同类型的数据。例如,

const x = 5;
const y = "Hello";

在这里,

  • 5 是整数数据。
  • “Hello” 是字符串数据。

JavaScript 数据类型

JavaScript 中有八种基本数据类型。它们是:

数据类型描述示例
String表示文本数据‘hello’,“hello world!” 等
Number整数或浮点数3,3.234,3e-2 等
BigInt具有任意精度的整数900719925124740999n,1n 等
Booleantrue 或 falsetrue 和 false
undefined一个未初始化变量的数据类型let a;
null表示 null 值let a = null;
Symbol其实例是唯一且不可变的数据类型let value = Symbol(‘hello’);
Object数据集合的键值对let student = { };

在这里,除了 Object 以外的所有数据类型都是原始数据类型,而 Object 是非原始数据类型。

注意:Object 数据类型(非原始类型)可以存储数据集合,而原始数据类型只能存储单个数据。

JavaScript String-字符串

字符串用于存储文本。在 JavaScript 中,字符串用引号括起来:

  • 单引号:‘Hello’
  • 双引号:“Hello”
  • 反引号:`Hello`

例如,

// 字符串示例
const name = 'ban';
const name1 = "xia";
const result = `The names are ${name} and ${name1}`;

单引号和双引号实际上是相同的,你可以使用任何一个。

当你需要在字符串中包含变量或表达式时,通常会使用反引号。这是通过将变量或表达式用 ${variable or expression} 包装来完成的,如上所示。

你将在后续 JavaScript 字符串教程中了解有关反引号的详细使用。

JavaScript Number-数字

数字表示整数和浮点数(十进制和指数)。例如,

const number1 = 3;
const number2 = 3.433;
const number3 = 3e5 // 3 * 10^5

数字类型也可以是 +Infinity、-Infinity 和 NaN(不是数字)。例如,

const number1 = 3/0;
console.log(number1); // Infinity

const number2 = -3/0;
console.log(number2); // -Infinity

// 字符串不能被数字除
const number3 = "abc"/3; 
console.log(number3);  // NaN

JavaScript BigInt

在 JavaScript 中,Number 类型只能表示小于 (253 - 1) 和大于 -(253 - 1) 的数字。但是,如果你需要使用比这更大的数字,则可以使用 BigInt 数据类型。

BigInt 数字是通过在整数末尾添加 n 来创建的。例如,

// BigInt 值
const value1 = 900719925124740998n;

// 添加两个大整数
const result1 = value1 + 1n;
console.log(result1); // "900719925124740999n"

const value2 = 900719925124740998n;

// 错误!不能将 BitInt 和数字相加
const result2 = value2 + 1; 
console.log(result2); 

输出:

900719925124740999n
Uncaught TypeError: Cannot mix BigInt and other types

注意:BigInt 是在较新版本的 JavaScript 中引入的,不受许多浏览器的支持,包括 Safari。访问 BigInt | Can I use 支持以了解更多信息。

JavaScript Boolean-布尔

这种数据类型表示逻辑实体。布尔表示两个值中的任一个:true 或 false。它更容易被认为是一个是/否开关。例如,

const dataChecked = true;
const valueCounted = false;

你将在后续 JavaScript 比较和逻辑运算符教程中了解更多关于布尔值的内容。

JavaScript undefined-未定义

未定义数据类型表示未分配的值。如果声明了一个变量但没有分配值,则该变量的值将是未定义的。例如,

let name;
console.log(name); // undefined

也可以显式地将变量值分配为未定义。例如,

let name = undefined;
console.log(name); // undefined

注意:不建议将未定义分配给变量。通常,null 用于分配“未知”或“空”值。

JavaScript null

在 JavaScript 中,null 是表示空或未知值的特殊值。例如,

const number = null;

上面的代码表明 number 变量为空。

注意:null 不同于 NULL 或 Null。

JavaScript Symbol

这种数据类型是在ES6(从 ES2015 开始)中引入的。

具有数据类型 Symbol 的值可以称为符号值。Symbol 是一个不可变的原始值,是唯一的。例如,

// 具有相同描述的两个符号

const value1 = Symbol('hello');
const value2 = Symbol('hello');

尽管 value1 和 value2 都包含“hello”,但它们是不同的,因为它们是 Symbol 类型。

JavaScript Object-对象

对象是一种复杂的数据类型,允许我们存储数据集合。例如,

const student = {
    firstName: 'ram',
    lastName: null,
    class: 10
};

你将在后续的教程中详细了解 JavaScript 对象。

JavaScript 类型

需要注意的是,JavaScript 是一种动态且弱类型的语言,因此相同的变量可用于保存各种不同的数据类型。分配了某种类型值的 JavaScript 变量可以重新分配不同类型的值。例如,

// 数据是未定义类型
let data;

// 数据是整数类型
data = 5;

// 数据是字符串类型
data = "JavaScript 编程";

JavaScript typeof

要查找变量的类型,可以使用 typeof 运算符。例如,

const name = 'ram';
typeof(name); // 返回 "string"

const number = 4;
typeof(number); // 返回 "number"

const valueChecked = true;
typeof(valueChecked); // 返回 "boolean"

const a = null;
typeof(a); // 返回 "object"

注意,typeof 对于 null 类型返回了“object”。这是 JavaScript 自从第一次发布以来的已知问题。

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

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

相关文章

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径

目录 零、查看Python的安装路径一、Chromedriver放置的位置二、浏览器闪退 零、查看Python的安装路径 一、Chromedriver放置的位置 背景:之前由于Chrome浏览器自动升级后,导致驱动与浏览器不匹配,自己也不知道问题出在哪儿,花费了…

hadoop和spark配置问题记录

hadoop和spark配置问题记录 Spark的WebUI访问不了 直接启动的start-all.sh是环境变量中配置的hadoop的脚本,不是spark的,因此启动spark的start-all.sh脚本即可。 Spark看不到Worker信息 启动Spark在UI界面上看不到worker节点的信息_潇洒哥WH3的博客-C…

【Java|基础篇】包和访问权限修饰符

文章目录 1. 前言2. 包的概念3. 包的创建以及优点4. 访问权限修饰符5. 总结 1. 前言 包和访问权限修饰符是Java中两个常用的概念,它们都与访问控制有关. 2. 包的概念 在面向对象体系中,提出了一个软件包的概念,即:为了更好的管…

代码随想录算法训练营第四十四天 | 完全背包、完全背包的遍历顺序

完全背包 理论基础 文档讲解:代码随想录 (programmercarl.com) 视频讲解:带你学透完全背包问题! 和 01背包有什么差别?遍历顺序上有什么讲究?_哔哩哔哩_bilibili 完全背包和01背包问题唯一不同的地方就是,每…

品牌战略规划:如何让你的品牌脱颖而出

虽然很多国内企业家都非常重视战略,什么商业战略、渠道战略之类的一通研究,但惟独却缺乏对品牌战略的一个正确理解。 很多时候一把手不参与,也不关心品牌建设,经常上来就让团队实操动作,而自己只看最终结果&#xff0…

LeetCode20.有效的括号

题目 思路 每一个右括号应该与与在它左边最近的左括号相匹配,所以这道题可以通过栈实现 代码 💬由于博主还没有学习到C,能力有限,所以只能自己实现一个栈,学过C的朋友可以直接使用CSTL中的栈来实现 #define _CRT_S…

深入理解事务的隔离性 —— 多版本并发控制( MVCC )

文章目录 一、数据库并发的三种场景二、多版本并发控制(MVCC)的初步认识三、事务的隐藏列字段四、UNDO 日志五、Read View 读视图六、深入理解 MVCC —— 隔离级别的实现原理七、RC 与 RR 的本质区别 一、数据库并发的三种场景 数据库并发指的是多个用户…

如何将Shapefile文件导入Sketch Up进行建模

涉及软件:ArcGIS10.4.1,Sketch Up Pro2022 1.shapefile的属性编辑 基于我们已有的shp文件,打开属性表,添加一个高度字段用于存放平面图形高度信息,为后期三维拉伸做好准备(如果已有相关信息,请…

区间合并【pair、sort】

将有交集(包括端点)的区间进行合并 802. 区间和 - AcWing题库 例如,现在有这样一个数据 1 2 2 4 5 6 7 8 7 9最终合并的结果就是 1 —— 45 —— 67 —— 9 得到三个区间 第一步:按照区间左端点排序 第二步:扫描…

【C++初阶】:模板初阶

模板初阶 一.函数模板1.简单使用2.模板原理3.函数模板的实例化4.模板参数的匹配原则 二.类模板1.基本格式2.类模板实例化 一.函数模板 1.简单使用 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的…

【OJ比赛日历】快周末了,不来一场比赛吗? #05.20-05.26 #10场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 2023-05-20(周六) #4场比赛2023-05-21…

关于Compilation failed: internal java compiler error的解决方法(Idea)

**idea编译项目时出现java: Compilation failed: internal java compiler error java:编译失败:内部java编译器错误 根本原因基本上有两个,一个jdk版本问题,一个堆栈不足问题,我这次就是堆栈不足导致的; 1、项目过大…

IDOIEO盘点,包括PoseiSwap等即将面向市场的潜力打新活动

本月即将推出几个值得关注的打新活动一览: 项目名:PoseiSwap 官网:poseiswap.xyz PoseiSwap 是 Nautilus Chain 上的首个 DEX, Nautilus Chain 作为目前行业内第一个并行化且运行速度最快EVM Rollup的L3扩容方案,其将…

如何反转ggplot2中的图例键顺序

动动发财的小手,点个赞吧! 在本教程[1]中,我们将学习如何反转 ggplot2 中图例键的顺序。 在 ggplot2 中,当我们在 aes() 中使用颜色或填充参数为变量着色时,我们会得到一个带有键的图例,显示哪些键匹配哪些…

蓝奏云直链解析

[玫瑰]蓝奏云直链获取在线解析网站源码 蓝奏云链接解析 本地API接口 [玫瑰]支持有无密码和短期直链和永久直链,同时还可以显示文件名和大小。 [玫瑰]这个解析器无需数据库即可搭建,API接口已经本地化,非常简单易用。 [玫瑰]解压密码 123321 链…

zotero-style 摸索

打开zotero-编辑-首选项-style 可以看到图中所示的function界面 标签 刚安装好的时候原来自带的标签都不显示了,重启也没用,原来是不要勾选function下的title就好了 还有一种解决方法是,同时勾选title和tag,然后在标题栏右键&am…

【数据结构】堆(Heap)

文章目录 前言一、堆1、 概念2、性质3、结构 二、堆的实现1、算法实现:向下调整算法向上调整算法(堆的创建)堆的插入堆的删除堆的排序 2、 代码实现(小堆):堆的定义交换检查容量向下调整向上调整堆的初始化堆的创建销毁堆堆的插入堆的删除获取堆顶元素判…

Linux下C/C++实现DNS查询(DNS QUERY)

DNS 的全称是 Domain Name System 或者 Domain Name Service,它主要的作用就是将人们所熟悉的网址 (域名) “翻译”成电脑可以理解的 IP 地址,这个过程叫做 DNS 域名解析。域名是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称&am…

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结,优雅草松鼠蜻蜓系统安装必须开启proc_open,putenv,但是希望大家在安装完成后一定要禁用。 必须禁用的高危函数: system,exec,passthru,shell_exec,popen,proc_open,pute…

国考省考行测:数量关系,十字交叉法,增长率反应去年的量,浓度反应的是浓液,平均反应的是人数

国考省考行测:十字交叉法 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和行测的重要知识点 遇…