数据类型2

2020-09-27  本文已影响0人  栗子daisy
值类型 引用类型
基本类型:字符串(string)、数值(number)、布尔值(boolean)、undefined、null 、symbol 对象(Object)、数组(Array)、函数(Function)
占用空间固定,保存在栈中 占用空间不固定,保存在堆中
保存与复制 值本身 指向对象的一个指针
检测类型 toString.call()
typeof()
toString.call()
instanceof
使用new()方法构造出的对象是引用型

-“Object.prototype.toString.call()”可以简写为“toString.call()” toString方法将数据由其他的形态转换成string形态(除了null和undefined),所以我们可以利用该特性做类型检测。
Object.prototype.toString.call("hello");//[object String]

浅拷贝 深拷贝
首先深复制和浅复制只针对像 Object, Array 这样的复杂对象的。简单来说,浅复制只复制一层对象的属性,而深复制则递归复制了所有层级,深拷贝后两个对象互不影响。

浅拷贝的方式
深拷贝方式
function deepCopy(A,B) {
    for(item in A){
        if(typeof item=="object"){
            deepCopy(item,B[item]);
        } else {  B[item]=A[item];  }
    } }
deepCopy(A,B);
B.data.num=5;
console.log(A.data.num);    //10,A中属性值并没有改变,说明是深拷贝
上一篇 下一篇

猜你喜欢

热点阅读