值类型数据的特点
变量的本质是 “空间地址”,
基本类型(值类型)的数据 是储存在栈空间的,在栈空间储存“内容”
在js中,一个变量赋值给;另外一个变量都是副本赋值,赋值就是把这个变量在栈空间储存的“内容”复制一份给另外一个变量,所以
let a = '苹果'
let b = a
a = '香蕉'
console.log(a) //打印香蕉
console.log(b) //打印苹果
被赋值的变量的“内容”被修改和原先给它赋值的变量无关。
比如:我把一个文件复制一份发给你,你在你的电脑上面修改了,对我电脑上面的文件没有任何影响,因为变的只是你电脑上的文件。你的电脑和我的电脑是没有联系的。
引用类型数值的特点
引用类型(数组,对象,函数..)的数据,他在栈空间储存的不是“内容”本身,而是 一个通往堆空间的“空间地址”,内容储存在堆空间里面。
在js中,一个变量赋值给;另外一个变量都是副本赋值,赋值就是把这个变量在栈空间储存的“内容”复制一份给另外一个变量,所以
引用类型的数据他赋值的时候赋值给变量的是一个通往堆空间的空间地址。
所以
let a = { name : ' 小明 ' , level : 1 } let b= a b.name = '小红' console.log (a.name)
修改变量B的值,变量A的内容也会跟着修改,最后的结果是小红。
比如:把一份资料传到 云平台上面 ,a有修改权限,而给 b 赋值以后 b 也有了修改权限,那么,b 在 自己 电脑上面修改这份资料的时候,a 的电脑上面显示的内容也会改变