什么是变量?大多数(尤其是 Mozilla Web 文档(MDN))会将其描述为“值的容器”。命名代码,指从简单值到函数的任何类型的程序。
var foo = "I pity the..."; const group =['Rhonda', 'Jamey', 'Kori', 'Greg']; let greed = function (root) { console.log("of all evil"); }
描述变量“就像可以存储东西的小纸板箱。(MDN)”是一种常见的做法,如果没有这些盒子,我们的价值观就会枯萎并消亡。代码的热度在实施后很快就不复存在。正如大部头 Eloquent JavaScript(EJS) 中所述,变量需要“...立即使用,否则(它们)将消散”,然后有两种方法可以创建这些用于持久表达的容器:
var question; let box; const cat;
var question = true; let box = null; const cat = 4 + 3;
= 的读法总是将其左边的值赋予右边的值。这就是我们如何知道盒子
中没有任何东西
现在,就像任何打开的盒子一样,它的内容几乎可以在您喜欢的任何时间移动。 “* 可以随时对现有(变量)使用 = 运算符,将它们与当前值断开并让它们指向新值:*”(EJS)
let greenLight = false; //*the greenLight box contains the false value* greenLight = true; //*greenLight is now set to the value true*
false 值曾经驻留在此框中,但通过一个简单的更改,里面就有一个全新的值。就这么简单!
好吧,感觉我们已经彻底探索并内化了容器、盒子概念。现在我们来探讨一下为什么它是错误的。
正如您可能已经看到的那样,变量的“容器”哲学对于很多事情来说都非常有用。尽管如此,在某些时候,盒子开始变得复杂:
let a = 5; let b = a; a = 7; console.log(b);// 5
如果盒子 b 里面有盒子 a,并且盒子 b 填充了新值,那么对于 a 来说不是同样如此吗?我的意思是,两个盒子放在一起时,里面装满的东西往往是相同的,对吗? 错误。当你思考这些事情时,变量的盒子概念会变得令人困惑,因为通常,变量根本不像盒子。
确实,在这种情况下,最好将数据视为一直存在。从本质上讲,变量只是使该数据变得重要且易于访问。这些程序漂浮在广阔的 techSpace 中,由我们的变量来“抓住并保留(它们)”(EJS)。乍一看有点奇怪,但仔细想想就很有意义。 Eloquent JavaScript 是这样描述的:
"你应该将绑定想象成触手而不是盒子。它们不包含值;它们抓住它们——两个绑定可以引用同一个值。程序只能访问它仍然可以访问的值。当你需要记住某件事时,你要么长出一根触手来抓住它,要么将你现有的触手重新附着在它上面。“
现在,attach在这里有点欺骗性,因为这些“触角”只能“抓住”足够小的值来容纳(64位)。这些值称为“简单数据类型”(EJS),包括数字、字符串和布尔值。如果一个值很简单,我们的触手会环绕并抓住它..有点..我们称之为按值传递(GFG)的行为。我这么说是因为如果我们的触手寻找的值足够简单,它就不会费心去保留同一个值,它只会复制一份并保留它自己:
在上面的例子中,我们的b触手并没有费心去抓住a所拥有的相同的5,所以当a改变了它的条纹并且那个5消失在太空中时,b仍然留下了它最初持有的5的副本。现在让我们尝试一些不同的东西:
var a = [13, 40, 27]; var b = a; b.push(5, 1)//push is a method that moves these values into the end an array console.log(a);//[13, 40, 27, 5, 1];
This example is a bit more complex. Our complex dataTypes(arrays, objects, functions) are much to big to go around making copies of them to wrap our tentacles around, so what we do is simply point to the original. An act we like to call Pass by reference(GFG). In this example, b can't hold on to its own array, so when it goes through a change, the original array it points to feels that change pass through it.
This was a small introduction to how we name, grasp, point to, and otherwise utilize data for our own brilliant purposes. It's easy to overlook, but without variables, we would all be lost in a sea of code, digital waters all around us, grasping away as digital water falls right through our fingers. Variables are the boats that carry us all to our destination, and I, for one, appreciate the ride.
References by initial
(MDN)
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables
(EJS)
https://eloquentjavascript.net/02_program_structure.html
(GFG)
https://www.geeksforgeeks.org/pass-by-value-and-pass-by-reference-in-javascript/
以上是盒子里有什么?!:变量的详细内容。更多信息请关注PHP中文网其他相关文章!