在 JavaScript 中,数据类型可以分为原始值和引用值。原始值指的是简单的数据类型,如字符串、数字、布尔值、null 和 undefined;引用值指的是复杂的数据类型,如对象、数组、函数等。 原始值是通过值来比较的,也就是说,当两个变量的值相同时,它们就相等。而引用值是通过引用来比较的,也就是说,当两个变量引用同一个对象时,它们才相等。 下面是一些 JavaScript 中原始值和引用值的示例: 原始值
let a = 10; let b = a; // b 的值为 10 b = 20; // a 的值不会改变,仍为 10 let str1 = "hello"; let str2 = str1; // str2 的值为 "hello" str2 = "world"; // str1 的值不会改变,仍为 "hello" let bool1 = true; let bool2 = bool1; // bool2 的值为 true bool2 = false; // bool1 的值不会改变,仍为 true
引用值
let obj1 = { name: "Alice", age: 20 }; let obj2 = obj1; // obj2 引用了 obj1 所指向的对象 obj2.age = 21; // obj1 和 obj2 都指向同一个对象,所以 obj1.age 也会变成 21 let arr1 = [1, 2, 3]; let arr2 = arr1; // arr2 引用了 arr1 所指向的数组 arr2.push(4); // arr1 和 arr2 都指向同一个数组,所以 arr1 的长度也会变成 4 function sayHello(name) { console.log(`Hello, ${name}!`); } let func1 = sayHello; let func2 = func1; // func2 引用了 func1 所指向的函数 func2("Bob"); // 输出:Hello, Bob!
需要注意的是,当把一个引用值赋值给另一个变量时,它们实际上是共享同一个对象。因此,修改一个变量的值也会影响另一个变量的值。