js有五种基本类型: string number blooen null undefined
1.javascript变量包含两种不同数据类型的值:基本类型和引用类型。
基本类型值指的是简单的数据段,包括es6里面新增的一共是有6种,具体如下:number、string、boolean、null、undefined、symbol。
引用类型值指那些可能由多个值构成的对象,只有一种如下:object。 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。
2.javascript的变量的存储方式:栈(stack)和堆(heap)。
栈:自动分配内存空间,系统自动释放,里面存放的是基本类型的值和引用类型的地址
堆:动态分配的内存,大小不定,也不会自动释放。里面存放引用类型的值。 而这两类数据存储分别是这样的:a.基本类型--名值存储在栈内存中
let a = 1; 当b = a时,栈内存会开辟一个内存.所以当修改a=2时,对b并不会造成影响.因为b已经自食其力.
a.基本类型--名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值
let a={ name:'aaa' }
function depClone(source){ let targetObj = source.constructor === 'Array'?[]:{}; for(var key in source){ if(source.hasOwnproperty(key){ if(source[key]&&typeof(source)=='Object'){ targetObjt[key] = source[key].constructor === Array?[]:{}; targetObjt[key] = deepClone(source[key]) }else{ targetObjt[key] = source[key] } } } return targetObjt}复制代码