3.1 原始类型
3.1 原始类型:number、string、boolean、null、undefined、Symbol、BigInt
JavaScript 中的原始类型(Primitive Types)是构成语言基础的数据类型。它们是不可变的(immutable),即值本身不能被修改。本节将详细介绍 JavaScript 的七种原始类型:number、string、boolean、null、undefined、Symbol 和 BigInt。
3.1.1 number(数字类型)
number 类型用于表示整数和浮点数。JavaScript 使用 IEEE 754 双精度浮点数格式,因此所有数字都是浮点数。
1. 示例
let integer = 42; // 整数
let float = 3.14; // 浮点数
let scientific = 5e3; // 科学计数法,5000
2. 特殊值
NaN(Not a Number):表示无效的数字运算结果。console.log(0 / 0); // 输出 NaNInfinity和-Infinity:表示正无穷和负无穷。console.log(1 / 0); // 输出 Infinity
3. 注意事项
- JavaScript 没有真正的整数类型,所有数字都是浮点数。
- 浮点数运算可能存在精度问题:
console.log(0.1 + 0.2); // 输出 0.30000000000000004
3.1.2 string(字符串类型)
string 类型用于表示文本数据。字符串可以用单引号(')、双引号(")或反引号(`)定义。
1. 示例
let singleQuotes = 'Hello';
let doubleQuotes = "World";
let templateLiteral = `Hello, ${doubleQuotes}!`; // 模板字符串
2. 特性
- 字符串是不可变的,修改字符串会创建一个新字符串。
- 模板字符串支持多行文本和嵌入表达式:
let multiLine = ` Line 1 Line 2 `; console.log(multiLine);
3.1.3 boolean(布尔类型)
boolean 类型只有两个值:true 和 false,用于表示逻辑真和假。
1. 示例
let isTrue = true;
let isFalse = false;
2. 布尔转换
以下值会被转换为 false,其他值转换为 true:
false0""(空字符串)nullundefinedNaN
3.1.4 null(空值类型)
null 表示一个空值或不存在的对象引用。
1. 示例
let emptyValue = null;
2. 注意事项
null是一个特殊的关键字,不是对象。- 使用
typeof检测null会返回"object"(历史遗留问题):console.log(typeof null); // 输出 "object"
3.1.5 undefined(未定义类型)
undefined 表示变量已声明但未赋值,或函数没有返回值。
1. 示例
let unassigned;
console.log(unassigned); // 输出 undefined
function noReturn() {}
console.log(noReturn()); // 输出 undefined
2. 注意事项
undefined是一个全局变量,可以被覆盖(不推荐):let undefined = "oops"; console.log(undefined); // 输出 "oops"
3.1.6 Symbol(符号类型)
Symbol 是 ES6 引入的原始类型,用于创建唯一的标识符。
1. 示例
let sym1 = Symbol("description");
let sym2 = Symbol("description");
console.log(sym1 === sym2); // 输出 false
2. 特性
- 每个
Symbol都是唯一的,即使描述相同。 - 常用于对象属性的键,避免命名冲突:
const obj = { [Symbol("key")]: "value", }; console.log(obj); // 输出 { [Symbol(key)]: 'value' }
3.1.7 BigInt(大整数类型)
BigInt 是 ES2020 引入的原始类型,用于表示任意精度的整数。
1. 示例
let bigInt = 1234567890123456789012345678901234567890n;
console.log(bigInt + 1n); // 输出 1234567890123456789012345678901234567891n
2. 特性
BigInt字面量以n结尾。- 不能与
number直接运算,需要显式转换:let num = 10; console.log(BigInt(num) + 1n); // 输出 11n
3.1.8 总结
JavaScript 的原始类型包括:
number:表示整数和浮点数。string:表示文本数据。boolean:表示逻辑真和假。null:表示空值。undefined:表示未定义。Symbol:表示唯一的标识符。BigInt:表示任意精度的整数。
理解这些原始类型的特点和用法,是掌握 JavaScript 的基础。在接下来的章节中,我们将进一步探讨引用类型和其他高级特性。
思考题:
NaN是什么?如何检测一个值是否为NaN?- 模板字符串相比普通字符串有哪些优势?
Symbol的主要用途是什么?为什么它是唯一的?- 在什么情况下需要使用
BigInt?
#前端开发
分享于 2025-03-13
上一篇:2.4 全局作用域与模块作用域
下一篇:3.2 引用类型