javascript基础类型和引用类型
基本类型(栈数据)
String Number Boolean null undefined symbol(ES6)
引用类型(堆数据)
Array Object Function Date RegExp 等
区分 栈小堆大
1.基础类型是放置在栈里面,一般基础类型的数据都比较小,赋值不影响自身
vara =1;
varb = a;
a =2;
console.log(b);// 1
2.引用类型是放置在堆里面,一般引用类型的数据都比较大,而栈空间又比较小,所有引用类型都是放置在堆里面,而放置在栈空间的是引用类型的地址引用,互相赋值会影响双方
varobj1 = {
name:'lyj'
};
varobj2 = obj1;
obj1.name ='cjy';
console.log(obj2);// {name: 'cjy'}
3.如果引用类型想赋值却又不想互相影响,可以通过浅克隆方式,如下
1.ES6结构
varobj1 = {name:'lyj'}
varobj2 = {...obj1}
2.JSON大法
varobj1 = {name:'lyj'}
varobj2 =JSON.parse(JSON.stringify(obj1))
3.函数封装clone
function clone(origin, target) {
vartarget = target || {}
for(varpropinorigin) {
target[prop] = origin[prop]
}
returntarget
}
varobj1 = {name:'lyj',sex:'boy'}
varobj2 = clone(obj1)
小编是个多年开发经验的程序员。如果你想要学好WEB前端,在学习过程中,身边没有一个能够指导你学习的人,可以到这个WEB前端裙,里面最新学习路线和教程,不管是计算机专业想要往WEB前端方向发展,还是零基础想转行,都可以跟着教程学,有什么不懂的可以在里面问,这就是WEB前端裙。前面三个输入112,中间三个输入666,后面三个输入2127。