返回介绍

JavaScript 数据类型

发布于 2025-01-23 23:27:39 字数 2876 浏览 0 评论 0 收藏 0

您有时可能会读到 JS 是无类型的,但这是不正确的。 确实,您可以将各种不同类型分配给变量,但 JavaScript 具有类型。 特别是,它提供了原始类型和对象类型。

原始类型

原始类型包括:

  • Number(数字)
  • String(字符串)
  • Boolean(布尔)

还有两种特殊类型:

  • null(空值)
  • undefined(未定义)

让我们在这里详细介绍它们。

Number(数字)

在内部,JavaScript 只有一种数字类型:每个数字都是一个浮点数。

数字字面量是源代码中表示的数字,并且取决于它的编写方式,它可以是整数字面量或浮点数字面量。

整数:

10
5354576767321
0xCC //hex

浮点数:

3.14
.1234
5.2e4 //5.2 * 10^4

实际工作中你会碰到很多不可思议的问题,特别是浮点数运算的精度问题,请查看以下几篇文章,了解相关问题及解决方案:

  • JavaScript 浮点数运算的精度问题
  • JavaScript 中科学计数法转化为数值字符串形式
  • JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去…

String(字符串)

字符串类型是一系列字符。它在源代码中定义为字符串字面量,用引号或双引号括起来:

'A string'
"Another string"

通过使用反斜杠 \ ,字符串可以换行

"A \
string"

字符串可在打印字符串时解析转义序列,例如 \n 以创建一个新行。当您需要在引号括起的字符串中输入引号时,反斜杠也很有用,以防止将字符解释为结束引号:

'I\'m a developer'

可以使用 + 运算符连接字符串:

"A " + "string"

模板字符串

在 ES2015 中引入,模板字符串是字符串字面量,允许更强大的方式来定义字符串。

`a string`

您可以执行字符串替换,嵌入任何 JavaScript 表达式的结果:

`a string with ${something}`
`a string with ${something+somethingElse}`
`a string with ${obj.something()}`

您可以轻松拥有多行字符串:

`a string
with
${something}`

Boolean(布尔)

JavaScript 为布尔值定义了两个保留字: truefalse 。 许多比较操作 == === < > (依此类推)返回一个布尔值。

ifwhile 语句和其他控制结构使用布尔值来确定程序的流程。

他们不仅接受 truefalse ,还接受 真值 和 假值。

假值,值被解析为 false ,有

0
-0
NaN
undefined
null
'' //empty string

其余所有的值都被解析为 真值(truthy) 。

实际工作中我们还会碰到等值比较,请查看 JavaScript 等值比较 == ,=== 和 Object.is() 了解详情。

null

null 是一个特殊值,表示缺少值,这种类型就只有一个值 null 。 这也是其他语言中的常见概念,例如在 Python 中可以称为 nilNone

undefined

undefined 表示变量尚未初始化且值不存在。

它通常由没有返回值的函数返回。 当一个函数接受一个但不是由调用者设置的参数时,它是未定义的。

要检测值是否未定义,请使用构造:

typeof variable === 'undefined'

JavaScript 新手很容易混淆 undefinednull ,请阅读 JavaScript 中 undefined 和 null 的区别 了解。

Object(对象) 类型

任何不是原始类型的东西都是对象类型。

函数,数组和我们称之为对象的是对象类型。 它们本身是特殊的,但是它们继承了对象的许多属性,比如具有原型,并且还有对这些属性起作用的方法。

类型判断

实际开发工作中,我们会经常碰到 JavaScript 数据类型判断,阅读 JavaScript 数据类型判断 了解 JavaScript 数据类型判断的陷阱 与 最佳的处理方式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文