JavaScript数据类型详解
编程小白的全面指南 – 用大白话解释JavaScript数据类型知识点
文本数据
字符串就是由字符组成的文本,比如你的名字、一段话等。
let name = “张三”;
let greeting = ‘你好,世界!’;
let message = `我的名字是 ${name}`; // 模板字符串
重要知识:
- 可以用单引号(‘)、双引号(“)或反引号(`)包裹
- 反引号(`)用于模板字符串,可以插入变量
- 字符串是不可变的 – 一旦创建,不能直接修改
- 有length属性获取长度:name.length
数值数据
数字类型用于表示整数和小数(浮点数)。
let age = 25; // 整数
let price = 99.99; // 小数
let temperature = -10.5; // 负数
重要知识:
- JavaScript只有一种数字类型(Number)
- 整数和浮点数都是Number类型
- 特殊值:Infinity(无穷大)、-Infinity(无穷小)
- NaN(Not a Number)表示非数字值
真假判断
布尔类型只有两个值:true(真)和 false(假)。
let isStudent = true; // 是学生
let hasCar = false; // 没有车
let isAdult = (age >= 18); // 根据年龄判断
重要知识:
- 用于条件判断和逻辑运算
- 在比较操作中自动转换:0、””、null、undefined、NaN都会转为false
- 其他值转为true
空值对象
Null表示一个”空”值,代表此处不应该有值。
let car = null; // 表示没有车
let person = null; // 表示没有人员信息
重要知识:
- 表示”空”或”不存在”的对象引用
- 使用typeof检测null返回”object” – 这是历史遗留问题
- 应该主动设置为null表示某个变量不指向任何对象
未定义的值
当一个变量被声明了但没有赋值时,它的值就是undefined。
let name; // 值为undefined
let person = { age: 25 };
console.log(person.name); // 访问不存在的属性,结果为undefined
重要知识:
- 表示变量已声明但未赋值
- 访问对象不存在的属性返回undefined
- 函数没有返回值时默认返回undefined
- 与null不同,null表示主动设置的空值
唯一标识符
Symbol是ES6新增的类型,用于创建唯一的标识符。
let id1 = Symbol(“id”);
let id2 = Symbol(“id”);
console.log(id1 === id2); // false,每个Symbol都是唯一的
重要知识:
- 创建唯一的标识符,避免命名冲突
- 常用于对象的属性键
- Symbol不能被遍历(for…in循环会跳过)
- 主要用于创建对象的私有属性
超大整数
BigInt是ES2020新增的类型,用于表示超出Number范围的整数。
let bigNumber = 123456789012345678901234567890n;
let bigInt = BigInt(“9007199254740991”);
console.log(bigNumber + 1n); // 可以精确计算大数
重要知识:
- 用于表示大于2^53-1或小于-2^53+1的整数
- 在数字末尾加n表示BigInt
- 不能与Number混合运算,需要先转换
- 解决了JavaScript大整数计算精度丢失问题
复杂数据结构
对象是键值对的集合,用于存储更复杂的数据结构。
let person = {
name: “李四”,
age: 30,
isStudent: false
};
重要知识:
- 对象包含多个属性(键值对)
- 数组、函数、日期等都属于对象类型
- 对象是引用类型(复制的是引用而不是值)
- 可以用点符号(person.name)或方括号(person[“name”])访问属性
JavaScript数据类型小结
类型名称 | 说明 | 示例 | typeof返回值 |
---|---|---|---|
String | 文本数据 | “Hello”, ‘JavaScript’ | “string” |
Number | 整数或小数 | 42, 3.14, -5 | “number” |
Boolean | 真假值 | true, false | “boolean” |
Null | 空值 | null | “object”(历史遗留问题) |
Undefined | 未定义 | undefined | “undefined” |
Symbol | 唯一标识符 | Symbol(‘id’) | “symbol” |
BigInt | 大整数 | 12345678901234567890n | “bigint” |
Object | 对象/引用类型 | {}, [], function(){} | “object” |
记忆口诀:
JavaScript数据类型可以分为两大类:
原始类型(基本类型):String、Number、Boolean、Null、Undefined、Symbol、BigInt
对象类型(引用类型):Object(包括数组、函数、日期等)
原始类型存储的是值本身,对象类型存储的是内存地址(引用)。