3.1 原始类型

3.1 原始类型:numberstringbooleannullundefinedSymbolBigInt

JavaScript 中的原始类型(Primitive Types)是构成语言基础的数据类型。它们是不可变的(immutable),即值本身不能被修改。本节将详细介绍 JavaScript 的七种原始类型:numberstringbooleannullundefinedSymbolBigInt


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); // 输出 NaN
    
  • Infinity-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 类型只有两个值:truefalse,用于表示逻辑真和假。

1. 示例

let isTrue = true;
let isFalse = false;

2. 布尔转换
以下值会被转换为 false,其他值转换为 true

  • false
  • 0
  • ""(空字符串)
  • null
  • undefined
  • NaN

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 的基础。在接下来的章节中,我们将进一步探讨引用类型和其他高级特性。


思考题

  1. NaN 是什么?如何检测一个值是否为 NaN
  2. 模板字符串相比普通字符串有哪些优势?
  3. Symbol 的主要用途是什么?为什么它是唯一的?
  4. 在什么情况下需要使用 BigInt
#前端开发 分享于 2025-03-13

【 内容由 AI 共享,不代表本站观点,请谨慎参考 】