Z
ZHANK
基础入门

数据类型

学习 7 种原始类型与 typeof 运算符

数据类型

JavaScript 有 7 种原始类型和 1 种引用类型。理解类型是写出正确代码的基础。

学完本章你将: 掌握所有 JS 数据类型及 typeof 运算符。


原始类型(Primitive Types)

javascript
// 1. Number —— 整数和浮点数
let age = 25;
let price = 99.99;
let notANumber = NaN;
let infinity = Infinity;

// 2. String —— 字符串
let name = "Alice";
let greeting = '你好';
let template = `Hello ${name}`;

// 3. Boolean —— 布尔值
let isActive = true;
let isAdmin = false;

// 4. Undefined —— 未定义
let x;
console.log(x); // undefined
console.log(typeof x); // "undefined"

// 5. Null —— 空值(表示"无")
let y = null;
console.log(typeof y); // "object"(历史遗留 bug)
console.log(y === null); // true

// 6. BigInt —— 大整数(ES2020)
let big = 9007199254740991n;
let huge = BigInt("12345678901234567890");

// 7. Symbol —— 唯一标识符(ES6)
let sym1 = Symbol("id");
let sym2 = Symbol("id");
console.log(sym1 === sym2); // false

引用类型 —— Object

javascript
// 对象
let person = {
    name: "Alice",
    age: 25,
};

// 数组(也是对象)
let colors = ["red", "green", "blue"];
console.log(typeof colors); // "object"

// 函数(也是对象)
function greet() {
    return "Hello";
}
console.log(typeof greet); // "function"(实际是 object)

typeof 运算符

javascript
typeof 42;           // "number"
typeof "hello";      // "string"
typeof true;         // "boolean"
typeof undefined;    // "undefined"
typeof null;         // "object" ⚠️
typeof Symbol();     // "symbol"
typeof 1n;           // "bigint"
typeof {};           // "object"
typeof [];           // "object"
typeof function(){}; // "function"

动态类型

JavaScript 变量类型在运行时确定,可以随时改变:

javascript
let data = 42;
console.log(typeof data); // "number"

data = "hello";
console.log(typeof data); // "string"

data = true;
console.log(typeof data); // "boolean"