변수란 무엇인가요? 대부분(특히 Mozilla 웹 문서(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는 이를 다음과 같이 설명합니다.
"바인딩을 상자가 아닌 촉수로 상상해야 합니다. 값을 포함하지 않고 파악합니다. 두 바인딩은 동일한 값을 참조할 수 있습니다. 프로그램은 여전히 해당 값에 액세스할 수 있습니다. 기억해야 할 것이 있으면 촉수를 키워서 붙잡거나 기존 촉수 중 하나를 다시 부착하세요."
이러한 "촉수"는 보유할 수 있을 만큼 작은 값(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!