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

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值的副本。请记住这点,并对这里的技术细节和复杂对象进行比较(将在下面讨论)。

时间: 2024-07-29 14:16:44

《JavaScript启示录》——1.9 如何存储和复制原始值的相关文章

《JavaScript启示录》——1.13 如何存储或复制复杂值

1.13 如何存储或复制复杂值 复杂值是通过引用进行存储和操作的,理解这一点相当重要.创建一个包含复杂对象的变量时,其值是内存中的一个引用地址.引用一个复杂对象时,使用它的名称(即变量或对象属性)通过内存中的引用地址获取该对象值.当考虑试图复制一个复杂值时会发生什么事的时候,这就非常重要了.下面创建一个对象,并将它保存在变量myObject中,然后将myObject中的这个值复制到变量copyOfMyObject中.实际上,这并不是复制对象,更像是复制对象的地址. <!DOCTYPE html>

《JavaScript启示录》——导读

前言 本书无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现.本书的写作目的也不是鉴别JavaScript语言特点的好坏.本书并不是一本完整的参考指南.它面向的读者人群并不是编程新手或对JavaScript完全陌生的人员.同时,它也不是一本JavaScript攻略手册.关于上述这些方面的书籍都已经面世. 本书的撰写意图是通过考察原生JavaScript对象和不同环境对原生对象的支持的细微差别,来给读者展现准确的JavaScript世界观:复杂值.原始值.作用域.继承

《JavaScript启示录》——1.2 JavaScript构造函数构建并返回对象实例

1.2 JavaScript构造函数构建并返回对象实例 构造函数的作用是创建多个共享特定特性和行为的对象.构造函数主要是一种用于生成对象的饼干模具,这些对象具有默认属性和属性方法. 如果说"构造函数只是一个函数",那么我会说"你是对的,除非使用new关键字来调用该函数."(如new String('foo')).如果使用new调用某函数,该函数则担任一个特殊的角色,JavaScript给予该函数特殊待遇,将该函数的this值设置为正在构建的新对象.除了这个特殊行为,

javascript 密码框防止用户粘贴和复制的实现代码

 本篇文章主要是对javascript 密码框防止用户粘贴和复制的实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 <input id="password" type="password" onpaste="return false" onselectstart="return false" />   onpaste="return false":防止粘贴   onselects

《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象

第1章 JavaScript对象 1.1 创建对象 在JavaScript中,对象为"王":JavaScript里的几乎所有东西都是对象或者用起来像对象.理解了对象,就能够理解JavaScript.因此,让我们来查看一下JavaScript中的对象创建. 对象只是一组有命名值(也称为属性)集合的容器.在阅读JavaScript代码之前,让我们先来推理一下.以我自己为例,我们可以用简单的语言在表格中表达"cody": 上述表格中的"cody"一词只

javascript-jsp 在JavaScript存储session和取值

问题描述 jsp 在JavaScript存储session和取值 alert(rec.platformName); 能得到值 '<%=session.setAttribute("platformName",rec.platformName)%>';这个就不能保存了 解决方案 JSP获得JS数据一定要提交以后才能获得,JS获得JSP数据可以直接获得 .拼个form表单提交,然后获取值就行 解决方案二: onSelect: function(rec){ 在这里得到platfor

《JavaScript启示录》——1.3 JavaScript原生/内置对象构造函数

1.3 JavaScript原生/内置对象构造函数 JavaScript语言包含9个原生(或内置)对象构造函数.JavaScript使用这些对象来构建JavaScript语言."构建"的意思是指,这些对象是用于表达JavaScript代码中的对象值,以及协调语言中的多个特性.因此,原生对象构造函数是多方面的,它们生成对象,但也被用于促进语言的编程约定的形成.例如,函数是Function()构造函数创建的对象,但作为构造函数,使用new关键字调用后,它们也可用于创建其他对象. 下面列出了

JavaScript实现基于Cookie的存储类实例_javascript技巧

本文实例讲述了JavaScript实现基于Cookie的存储类.分享给大家供大家参考.具体分析如下: 通过这个JS类,你可以象使用session一样使用cookie,非常简单了! /* * CookieStorage.js * 本类实现像localStorage和sessionStorage一样的存储API * 不同的是,它是基于HTTP Cookies实现的. */ function CookieStorage(maxage, path) { // 两个参数分别代表储存有效期和作用域 // 获

《JavaScript启示录》——1.10 原始值比较采用值比较

1.10 原始值比较采用值比较 可以通过比较原始值来确定其值在字面上是否相同.从逻辑上讲,如果将一个包含数值10的变量与另一个包含数值10的变量进行比较,JavaScript将会认为它们是相等的,因为10与10是相同的(即10===10).同样,如果将原始字符串"foo"与另一个拥有'foo'值的原始字符串进行比较也会采用同样的方法.比较的结果是,根据它们的值,它们是彼此相等的(即'foo'==='foo'). 在下面的代码中,我使用原始数字演示了"值比较"的概念,