📅  最后修改于: 2023-12-03 15:31:40.509000             🧑  作者: Mango
JavaScript 数据类型分为两类:原始数据类型和非原始数据类型(对象类型)。
原始数据类型是指不能被改变的数据类型。JavaScript 中有 6 种原始数据类型:
5
或 3.14
。"Hello World"
。true
或 false
。null
。undefined
。let sym = Symbol('foo')
。原始数据类型都是不可变的,不允许修改其值。
以下是创建和使用原始数据类型的示例:
let num = 123;
let str = "Hello";
let bool = true;
let emptyVal = null;
let undefVal = undefined;
let sym = Symbol('foo');
非原始数据类型是指可以被改变的数据类型,其通常表示为一种对象。JavaScript 中有 3 种非原始数据类型:
{name: '张三', age: 18}
。[1, 2, 3]
。function sum(a, b) { return a + b; }
。非原始数据类型可以包含各种数据,包括原始数据类型、对象类型和其他复杂的数据类型,如日期和正则表达式等。
以下是创建和使用非原始数据类型的示例:
let obj = {name: '张三', age: 18};
let arr = [1, 2, 3];
function sum(a, b) { return a + b; }
对象类型和字符串类型被称为“引用类型”,意味着它们的值被存储在堆内存中,而不是变量所在的栈内存中。因此,在将引用类型传递给函数或分配给其他变量时,传递的是其引用(指针),而不是实际的值。
let obj1 = {name: '张三', age: 18};
let obj2 = obj1;
obj2.name = '李四';
console.log(obj1.name); // 输出 "李四"
在上面的示例中,obj1
和 obj2
都引用了同一个对象 {name: '张三', age: 18}
。因此,当我们修改 obj2.name
时,实际上也会修改 obj1.name
,因为它们指向同一个对象。