JavaScript数据类型
这篇文章详细列出了 JavaScript 中可用的各种数据类型。 JavaScript中有八种数据类型,如下表:
| 数据类型 | 描述 | 实例 |
|---|---|---|
String | 字符串数据 | 'hello', "hello world!" |
Number | 整数或浮点数 | 3, 3.234, 3e-2 |
BigInt | 具有任意精度的整数 | 900719925124740999n , 1n |
Boolean | 两个值中的任何一个:真或假,即布尔值 | true 和 false |
undefined | 变量未初始化的数据类型 | let a; |
null | 表示一个空值 | let a = null; |
Symbol | 实例唯一且不可变的数据类型 | let value = Symbol('hello'); |
Object | 数据集合的键值对,即对象 | let student = { }; |
这里,除了 Object 之外的所有数据类型都是原始数据类型,而 Object 是非原始数据类型。
JavaScript String
String用于存储文本。在 JavaScript 中,字符串用引号括起来:
- 单引号:
'Hello' - 双引号:
"Hello" - 反引号:
`Hello`单引号和双引号实际上是相同的,可以使用它们中的任何一个。 当需要将变量或表达式包含到字符串中时,通常使用反引号。这是通过使用 ${variable or expression} 包装变量或表达式来完成的,如上所示。
JavaScript Number
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 数据类型。
通过将 n 附加到整数的末尾来创建 BigInt 数。例如,
// BigInt 值
const value1 = 900719925124740998n;
// 两个BigInt相加
const result1 = value1 + 1n;
console.log(result1); // "900719925124740999n"
const value2 = 900719925124740998n;
// 错误! BigInt 和数字不能相加
const result2 = value2 + 1;
console.log(result2);
注意:BigInt 是在较新版本的 JavaScript 中引入的,包括 Safari 在内的许多浏览器都不支持。
JavaScript Boolean
此数据类型表示逻辑实体。布尔值表示两个值之一:true或false。更容易将其视为是/否开关。例如,
const dataChecked = true;
const valueCounted = false;
JavaScript undefined
undefined 的数据类型表示未分配的值。如果声明了变量但未分配值,则该变量的值将未定义。例如,
let name;
console.log(name); // undefined
也可以显式地分配一个未定义的变量值。例如,
let name = undefined;
console.log(name); // undefined
注意:建议不要将 undefined 显式分配给变量。通常,null 用于将“未知”或“空”值分配给变量。
JavaScript null
在 JavaScript 中,null 是一个特殊的值,表示空值或未知值。例如,
const number = null;
上面的代码表明 number 变量为空
注意:null 与 NULL 或 Null 不同
JavaScript Symbol
这种数据类型是在较新版本的 JavaScript(来自 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 Type
JavaScript 是一种动态类型(松散类型)的语言。 JavaScript 会自动确定变量的数据类型。 这也意味着变量可以是一种数据类型,然后可以更改为另一种数据类型。例如,
//undefined
let data;
//integer
data = 5;
//string
data = "JavaScript Programming";
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操作符的唯一目的就是检查数据类型,如果我们希望检查任何从 Object 派生出来的结构类型,使用typeof是不起作用的,因为总是会得到"object"。检查 Object 种类的合适方式是使用 instanceof 关键字。但即使这样也存在误差。 除 Object 以外的所有类型都是不可变的(值本身无法被改变)。例如,与 C 语言不同,JavaScript 中字符串是不可变的(译注:如,JavaScript 中对字符串的操作一定返回了一个新字符串,原始字符串并没有被改变)。我们称这些类型的值为“原始值”。