什麼是變數?大多數(尤其是 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中文網其他相關文章!