在JavaScript中,数据类型可以分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。
基本数据类型包括:
1. 数字(Number):表示数值,例如:1, 3.14。
2. 字符串(String):表示文本,例如:"Hello, World!"。
3. 布尔值(Boolean):表示真或假,只有两个值:true和false。
4. null:表示空值。
5. undefined:表示未定义的值。
6. Symbol:表示唯一的、不可改变的值,用于创建对象的唯一属性名。
引用数据类型包括:
1. 对象(Object):表示复杂的数据结构,可以包含多个键值对。例如:{name: "John", age: 25}。
2. 数组(Array):表示一组有序的数据,可以通过索引访问。例如:[1, 2, 3]。
3. 函数(Function):表示可执行的代码块,可以被调用执行。例如:function add(a, b) { return a + b; }。
基本数据类型和引用数据类型之间有以下区别:
1. 存储方式:基本数据类型的值直接存储在变量所分配的内存空间中,而引用数据类型的值存储在堆内存中,而变量中存储的是对该值的引用。
2. 复制行为:基本数据类型的赋值是按值传递,即将值从一个变量复制到另一个变量,它们之间相互独立。而引用数据类型的赋值是按引用传递,即将引用复制到另一个变量,它们指向同一个对象,修改其中一个会影响到另一个。
3. 比较行为:基本数据类型的比较是比较它们的值是否相等。而引用数据类型的比较是比较它们的引用是否相等,即它们是否指向同一个对象。
4. 可变性:基本数据类型是不可变的,一旦创建就不能修改其值。而引用数据类型是可变的,可以通过改变对象的属性或方法来修改其内容。
需要注意的是,在JavaScript中,字符串、数组和对象都属于引用数据类型,但它们也具有一些特殊的行为,比如字符串和数组可以像基本数据类型一样进行复制和比较。这是因为JavaScript对这些特定的引用数据类型进行了一些封装和优化。