首頁 > web前端 > js教程 > 盒子裡有什麼?

盒子裡有什麼?

王林
發布: 2024-08-10 11:42:02
原創
929 人瀏覽過

小盒子


什麼是變數?大多數(尤其是 Mozilla Web 文件(MDN))會將其描述為「值的容器」。命名程式碼,指從簡單值到函數的任何類型的程式。

var foo = "I pity the...";
const group =['Rhonda', 'Jamey', 'Kori', 'Greg'];
let greed = function (root) {
console.log("of all evil");
}
登入後複製

What

圖片來自MDN

描述變數「就像可以存放東西的小紙板箱。(MDN)」是一種常見的做法,如果沒有這些盒子,我們的價值觀就會枯萎並消亡。程式碼的熱度在實施後很快就不復存在。正如大部頭Eloquent JavaScript(EJS) 中所述,變數需要“...立即使用,否則(它們)將消散”,然後有兩種方法可以創建這些用於持久表達的容器:

  • 聲明:顧名思義。宣告一個變數只是確認它的存在和名稱,但除此之外就沒有什麼了。盒子沒有打開,所以我們看不到它的內容,或。因為盒子是封閉的,但我們希望裡面有東西,(薛定諤共鳴,有人嗎?)我們給了這些盒子正確命名的值未定義
var question;
let box;
const cat;
登入後複製
  • 初始化:初始化是 JavaScript 的表達方式:「這裡有一個盒子,這就是裡面的東西。」這個盒子是敞開的,我們可以很容易地看到它的內容。 「= 運算子」(EJS) 用來表示盒子內的內容。這可能是任何東西,真的。或什麼都沒有.. 要說“這個盒子是打開的,但裡面肯定沒有任何東西”,我們使用術語null。以下是一些初始化範例:
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 來說不是同樣如此嗎?我的意思是,兩個盒子放在一起時,裡面裝滿的東西往往是相同的,對嗎? 錯誤。 當您考慮這類事情時,變數的盒子概念會變得令人困惑,因為通常,變數根本不像盒子。

What

束縛和觸手

確實,在這種情況下,最好將資料視為一直存在。從本質上講,變數只是使該數據變得重要且易於存取。這些程式漂浮在廣闊的 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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板