编程技术文章分享与教程

网站首页 > 技术文章 正文

七爪源码:人类的 JavaScript 数据类型

hmc789 2024-11-26 03:37:53 技术文章 2 ℃

JS中数据类型的基础知识,适合初学者

数据类型是对数据的分类,它决定了该数据的可能值,以及您可以对它执行的操作。 JavaScript 有八种基本数据类型。


字符串

字符串是一组多个字符中的一个,可以包括数字、字母或符号。 字符串由引号(双引号或单引号)和反引号表示:

let string1 = ‘Hello, I am a string’let string2 = “I’m also a string”let string3 = `I, too am a string`

使用单引号或双引号在很大程度上是一个偏好问题,但当字符串需要使用变量或表达式时,需要使用反引号:

let string1 = 'Hello, I am a string'let stringtroduction = `${string1}, and my name is string1`console.log(stringtroduction)// output: Hello, I am a string, and my name is string1

JavaScript 中的字符串是不可变的:它们一旦创建就无法更改(JavaScript 数据类型和数据结构 — JavaScript | MDN,2022)。 看起来改变字符串的操作实际上将变量指向一个新创建的值。


数字

数字用于表示整数、小数和指数。 在大多数情况下,它们类似于我们在日常生活中理解数字的方式。 很容易将数字 '3' 的字符串值与数字 3 混淆; 但是从编程的角度来看,两者有很大的不同。

要表示数字,必须省略表示字符串的引号或反引号:

let num1 = 2
let num2 = 56.65

与“真实世界”的数字相比,JavaScript 中的数字有几个怪癖。 值 Infinity、-Infinity 和 NaN 都被视为数字(您可以使用 typeof 运算符对此进行测试)。 NaN 是“Not a Number”的缩写,当您尝试对(等待它)不是数字的值执行数学运算时会出现。 当其他有效的数值运算返回非实数的结果时(例如,尝试计算负数的平方根),结果也将为 NaN。

JavaScript 中的数字也有大小限制。 现实世界中的数字可以是任意大小,但在 JavaScript 中并非如此,其中数字仅限于 -(2?3 — 1) 和 (2?3 — 1) 之间的值。 对于其他一切,都有 BigInt。


大整数

这些与数字相似,但有一些关键区别。 BigInt 可以处理任何大小的数字。 BigInt 值可以通过将 `n` 附加到值或使用 `BigInt()` 函数来表示:

let largeNumber = 9007199256352991n
let largerNumber = BigInt(9107199256352991)

但是,BigInt 无权访问 Math 对象中包含的函数。 它们也不能与操作中的数字一起使用:这将需要类型强制,这可能会降低 BigInt 值的精度。


布尔值

这是一种逻辑数据类型,存在于许多编程语言中。 这种类型的数据可以具有以下两个值之一:`true` 或 `false`:

let yay = true
let nay = false

这些通常用于比较语句:

let x = 15
let y = 21
let result = x < y // result = true
result = x > y // result = false


不明确的

undefined 类型表示尚未定义的值,例如尚未声明值的变量:

let x
console.log(`No value has been declared, so x = ${x}.`)
// output: No value has been declared, so x = undefined.


null

null 数据类型表示空值或未知值,或“故意缺少任何对象值”。 这在概念上类似于 undefined,但必须显式分配。 简而言之,null 可以分配“无值”(按照惯例,不应该以这种方式使用 undefined)。

function closeAccount(user) {
  user.balance = null

在上面的示例中,`null` 用于在关闭用户帐户时覆盖现有余额值。 由于这与余额为 0 的帐户不同,因此余额金额被故意覆盖为“非价值”。


象征

符号数据类型的实例是唯一的:它们不能重复。 它们可用作唯一标识符,并避免与对象和函数发生名称冲突。 与字符串一样,符号可以用作对象属性的键(这是唯一可以以这种方式使用的两种数据类型)。

为了更好地理解符号的“唯一性”,请考虑以下几点:

console.log(‘string’ === ‘string’) // result: true
console.log(Symbol(‘string’) === Symbol(‘string’)) // result: false

比较两个字符串的结果是“真”,但比较具有相同值的两个符号会产生“假”:虽然这两个符号具有相同的值,但它们在内存中是唯一的实例,永远不可能等价。


目的

JavaScript 中的对象是键值对的集合,称为属性。 如上所述,键可以是字符串或符号,但是关联的值可以是任何数据类型。

let example = {word: ‘string’,number: ‘12’,existence: true,}

上面的代码片段显示了一个具有多个属性(包括字符串、数字和布尔值)的对象的声明。 这些属性可以通过点表示法(例如,object.property)或类似数组的表示法(例如,object['property'])来访问。 这是两者的演示,使用上面声明的“示例”对象:

if (example.existence) {console.log(example[‘word’] + example.number)}// output: string12


原始数据类型 vs 对象 vs 引用数据类型

JavaScript 中的数据类型通常分为两类:原始数据类型和对象。 可以预见,对象是指对象数据类型,而讨论的其他七种数据类型属于原始数据类型。

您可能会遇到的另一个分组是原始数据类型和引用数据类型。


关注七爪网,获取更多APP/小程序/网站源码资源!

Tags:

标签列表
最新留言