JavaScript 数据类型之间的存储与赋值
数据类型之间的存储区别
基本数据类型
NumberStringBooleanUndefinedNull
复杂数据类型
Function 函数
Object 对象
Array 数组
一、内存空间
我们所有的数据都是存储在内存空间中的
浏览器的内存空间被分为了两部分
栈内存堆内存
二、数据存储
基本数据类型就是直接存储在栈内存里面的
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 将会共享一个地址
深拷贝:实际是负值内容
全局变量和里面的局部变量互相独立
四、数据的值传递和引用传递
基本数据类型:属于值传递 本质就是一个简单的复制
引用数据类型:属于引用传递 本质是共享地址
四、数据的值传递和引用传递
基本数据类型:属于值传递 本质就是一个简单的复制
引用数据类型:属于引用传递 本质是共享地址