网站首页 > 技术文章 正文
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/小程序/网站源码资源!
- 上一篇: 从面试考察运算符优先级谈编码规范
- 下一篇: 使用上下文数据安全地评估JavaScript
猜你喜欢
- 2024-11-26 使用上下文数据安全地评估JavaScript
- 2024-11-26 从面试考察运算符优先级谈编码规范
- 2024-11-26 优维低代码:页面标题
- 2024-11-26 JavaScript 原型链、prototype、__proto__详解
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-