var a = 10;
var b = a;
console.log(b);//10
b = 20;
console.log(a);//20
Promise
var p = new Promise((resovle,reject)=>{
resovle(1);
reject(2);
})
console.log(p instanceof Promise)
console.log(p)
引用
基本类型只传值,引用类型既传值也传址
引用:既传值也传址
地址,引用,指针
var obj ={name:"lisi"};
var str = obj;//引用类型赋值计算的时候传递的是引用或者说指针
console.log(str);
str.age = 18;
console.log(obj);
如果是声明一个引用数据类型,那么占了两块内存空间
变量存在栈中
生成的实际对象存堆内存中
栈内存中的变量存的是一个引用(指针,坡地的值),指向堆内存中的实际对象
发生了赋值运算 实际上将地址的值赋予了sum,那么这个指针也是指向堆内存中的同一个对象
var arr = [1,2,3];
var sum = arr;
console.log(sum);//[1,2,3,4]
arr.push(4);
console.log(sum);//[1,2,3,4]
深拷贝,浅拷贝
数组里面每一项是基本数据类型的一个深拷贝
var arr = [1,2,3];
var sum = [...arr];
console.log(sum);//[1,2,3]
arr.push(4);
console.log(sum);//[1,2,3]
var arr = [1,2,3];
var sum = [].concat(arr);
console.log(sum);
arr.push(4)
console.log(sum);
slice
var arr = [1,2,3];
var sum = arr.slice(0);
console.log(sum);
arr.push(4);
console.log(sum);