4.值类型与引用类型参数传递
5.面试题
6.值类型与引用类型练习
//面试题1 :
// a -> x
function fn(a, b) {
// 相当于
// var a = 10;
// var b = 20;
// 函数的参数 其实就是函数内部的局部变量
a = a + 1;
b = b + 1;
console.log(a);
console.log(b);
}
var x = 10;
var y = 20;
fn(x, y);
console.log(x);
console.log(y);
//面试题2 :
var p = {
name:“zs”,
age:18
}
function fn(person) {
person.name = ‘ls’;
console.log(person.name);
}
fn§;
console.log(p.name);
//面试题3
function Person(name, age, salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
function f1(person) {
person.name = “ls”;
console.log(person.name);
}
var p = new Person(“zs”, 18, 1000);//创建一个新对象
console.log(p.name);//
f1§;
console.log(p.name);//
//面试题4
function Person(name, age, salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
function f1(person) {
person.name = “ls”;
person = {
name : ‘zs’
}
console.log(person.name);
}
var p = new Person(“zs”, 18, 1000);//创建一个新对象
console.log(p.name);//
f1§;
console.log(p.name);
结论:简单类型存储的是值本身,复杂类型存储的是地址,引入如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。