JavaScript 数据类型之间的存储与赋值
数据类型之间的存储区别
一、内存空间
-
我们所有的数据都是存储在内存空间中的
-
浏览器的内存空间被分为了两部分
- 栈内存
- 堆内存
二、数据存储
- 基本数据类型就是直接存储在栈内存里面的
var n1 = 100
var s1 = 'abc'
var b1 = true`
- 复杂数据类型
- 数据存储在堆内存里面,会有一个空间地址
- 地址存储在栈内存里面的变量身上
var obj = {
name: 'Jack',
age: 18,
gender: '男'
}
var arr = [10, 20, 30]
function fn() {
console.log(123)
}
数据类型之间的赋值区别
一、基本赋值
-
把一个变量的值 赋值给另一个变量
-
基本数据类型赋值之后,两个变量就没有关系了
-
复杂数据类型赋值之后,两个变量操作同一个空间
- 一个修改空间里面的数据,另一个跟着修改
二、函数的形参和实参的交互
三、数据的深拷贝和浅拷贝
-
浅拷贝:就是地址拷贝 arr = arr2 将会共享一个地址
-
深拷贝:实际是负值内容
- 全局变量和里面的局部变量互相独立
四、数据的值传递和引用传递
-
基本数据类型:属于值传递 本质就是一个简单的复制
-
引用数据类型:属于引用传递 本质是共享地址
四、数据的值传递和引用传递
基本数据类型:属于值传递 本质就是一个简单的复制
引用数据类型:属于引用传递 本质是共享地址