javascript基础类型和引用类型

javascript基础类型和引用类型

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。