X

XiaoSong

V1

2023/03/06阅读:18主题:默认主题

原始值与引用值

原始值

Undefined、Null、Boolean、Number、Strig、Symbol、BigInt。这些值都是按值存储的,下面举个例子:

let name = 'xiaomi'
let name1 =name

以上代码中name1初始值为name,那么name1也会得到xiaomi这个值,这个值跟name中存储的xiaomi是完全独立的。两个值互不影响,这个过程如下图所示:

其实就是又开辟了一个内存空间用来存储name1。这种存储结构是不是很像数据结构中的

引用值

是由多个值构成的对象。在操作对象的时候其实是操作的对象的引用,这个引用相当于一个指针。下面来举个例子:

let obj = {name:'xiaomi'}
let obj1 = obj
obj1.price = 3999
console.log(obj) // {name: 'xiaomi', price: 3999}

以上代码中我们把obj赋值给了obj1, 但是当我们给obj1添加属性的时候obj也受到了影响。其实obj存储的只是对象的引用,在给obj1赋值的时候只是把对象的引用给了它,它两个保存的是同一个地址,所以操作的是同一个对象。此过程如图所示:

分类:

前端

标签:

JavaScript

作者介绍

X
XiaoSong
V1