《JavaScript启示录》——1.9 如何存储和复制原始值

简介: 这里的重点是,原始值是作为不可细化的值进行存储和操作的。引用它们会转移其值。在上面的示例中,我们复制或者克隆了myString值并存储到myStringCopy变量中。当更新myString值时,myStringCopy值仍是旧myString值的副本。

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.9节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.9 如何存储和复制原始值

原始值在“面值(face value)”中的存储和操作,理解这一点相当重要。这可能听起来很简单,但是这意味着如果将字符串值“foo”存储在myString变量中,那么从字面上讲,“foo”值同样存储于内存中。为什么了解这个知识很重要?因为一旦开始操作(即复制)值,我们就必须了解它,因为原始值是真实值复制。

在下面的示例中,我们在变量myStringCopy中存储了myString值('foo')的一个副本,其值是真实值复制。即使我们改变原来的值,变量myStringCopy引用的复制值仍保持不变。

<!DOCTYPE html><html lang="en"><body><script>

var myString = 'foo' //创建原始值字符对象
var myStringCopy = myString; //复制字符并存储到新变量上

var myString = null; //操作存储在myString变量中的值

/* 原来的值从myString复制到了myStringCopy上,更新myString以后,再检测myStringCopy的值即可证实这点*/

console.log(myString, myStringCopy); // 输出 'null foo'

</script></body></html>

这里的重点是,原始值是作为不可细化的值进行存储和操作的。引用它们会转移其值。在上面的示例中,我们复制或者克隆了myString值并存储到myStringCopy变量中。当更新myString值时,myStringCopy值仍是旧myString值的副本。请记住这点,并对这里的技术细节和复杂对象进行比较(将在下面讨论)。

相关文章
|
15天前
|
存储 JavaScript 前端开发
在浏览器中存储数组和对象(js的问题)
在浏览器中存储数组和对象(js的问题)
|
8月前
|
存储 JavaScript
JS数据类型有哪些?存储上有什么区别?
JS数据类型有哪些?存储上有什么区别?
|
4月前
|
存储 JavaScript 前端开发
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
数组:数组是JS中的一种特殊对象,用于存储一组有序的数据。需要掌握数组的创建、访问、修改以及各种内置方法。
36 2
|
6月前
|
存储 JavaScript 安全
js数据类型分类及存储区别
js数据类型分类及存储区别
45 0
|
8月前
|
存储 JavaScript 前端开发
js中数组是如何在内存中存储的?
js中数组是如何在内存中存储的?
130 0
|
8月前
|
存储 缓存 JavaScript
js本地存储与临时存储
js本地存储与临时存储
81 0
|
8月前
|
存储 移动开发 JavaScript
JS三种常见的存储机制
JS三种常见的存储机制
|
8月前
|
存储 JavaScript
JS几种存储方式
JS几种存储方式
|
9月前
|
存储 JavaScript 前端开发
javascript本地化存储localStorage的实战用法
javascript本地化存储localStorage的实战用法
69 0
|
10月前
|
存储 JavaScript 前端开发
📕 重学JavaScript:数据是怎么存储的?
数据是用两种不同的方式来存储,一种叫做栈(stack),一种叫做堆(heap)。
55 0