// 简单数据类型/基本数据类型/值类型 Number String Boolean Null Undefined 类似于存到栈上
// 复杂数据类型/引用数据类型 Object Array 类似于存到堆上,对应的地址存到栈上,地址指向同一个堆
// 简单数据类型
var n1 = 10;
var n2 = n1;
// n2的值变化是否影响n1?
n2 = 3;
console.log(n1); // 10 不影响n1
// 复杂数据类型
function Fn(name, age, sex) { // Fn 帕斯卡命名 每一个单词首字母均大写
this.name = name;
this.age = age;
this.sex = sex;
this.eat = function () {
console.log(this.name + ':吃饭');
}
}
var person1 = new Fn('lilei', 17, 'boy');
var person2 = person1;
person2.name = 'ls'; // person2的值变化是否影响person1?
console.log(person1); // {name: "ls", age: 17, sex: "boy", eat: ƒ} 影响person1
// 简单数据类型作为函数的参数 传入函数后本身不发生变化
function fn(a, b) {
// var c = 1, d = 2; // d也是局部变量
a = a + 1;
b = b + 1;
console.log(a); // 3
console.log(b); // 3
}
var x = 2;
var y = 2;
fn(x, y);
console.log(x); // 2
console.log(y); // 2
// 复杂数据类型作为函数的参数 传入后本身发生变化
function p(person) {
person.name = 'zs';
}
var person1 = {
name: 'ls'
};
p(person1);
console.log(person1); // {name: "zs"}
function p(person) {
person.name = 'zs';
person = { // 在堆上开辟一个新空间
name: 'ww'
};
console.log(person.name); // ww
}
var person1 = {
name: 'ls'
};
p(person1);
console.log(person1.name); // zs
js简单数据类型和复杂数据类型的差异性
最新推荐文章于 2024-11-01 13:37:40 发布