引用类型与对象拷贝

1.引用类型有哪些?非引用类型有哪些?

  1. ECMA Script中规定,JavaScript的基本数据类型分为两类,即基本类型和引用类型,其中基本数据类型包括5种,number、string、boolean、以及undefined、null两个特殊类型,其次引用类型包括Object、Array、Function、zhengze等。
  2. 其次,关于这两种数据类型,他们的不同之处在于数据的保存类型不同,对于基本类型的数据,其保存的方式是在内存中的栈空间,开辟一个固定大小的空间进行固定位置的保存,并且数据的访问形式是后进先出,而引用类型的数据,其保存的形式是在内存的堆空间开辟一个动态的空间来保存数据的值(因为数据的大小不固定),当我们访问这个变量的时候其实是根据存在栈空间的指针寻址来查找到相应的堆内存空间,这也就是为什么,当我们给基本类型进行重复赋值的时候,基本数据的值不会改变,而引用类型会一起连带改变,因为我们的改变不在是单独去创建一个副本,而是查找了同一个指针引用并改变了其堆内存中的值。

2. 如下代码输出什么?为什么?

引用类型与对象拷贝_第1张图片

3. 如下代码输出什么?为什么?

引用类型与对象拷贝_第2张图片

4. 如下代码输出什么?为什么?

引用类型与对象拷贝_第3张图片

5.过滤如下数组,只保留正数,直接在原数组上操作

引用类型与对象拷贝_第4张图片

6.过滤如下数组,只保留正数,原数组不变,生成新数组

引用类型与对象拷贝_第5张图片

7.写一个深拷贝函数,用两种方式实现

引用类型与对象拷贝_第6张图片

你可能感兴趣的:(引用类型与对象拷贝)