실행 스레드 - 한 번에 한 가지

자, 이제 막 프로그래밍 언어를 배우기 시작했고 JavaScript와 사랑에 빠졌습니다. 그러나 여전히 코드에 어려움을 겪고 있는 것 같습니까? 목표를 달성할 때까지 다양한 시나리오를 추측하고 계십니까?

걱정하지 마세요. 이것은 정상입니다. 당신은 이 노력에 혼자가 아닙니다.

하지만, 나는 당신을 돕고 싶습니다. 따라서 코드를 더 많이 제어할 수 있습니다. "내부"에서 무슨 일이 일어나고 있는지 더 많이 이해하십시오.

당시 한 가지



코드를 더 많이 제어하려면 먼저 TE(Thread of Execution)의 역할을 이해해야 합니다.

설계상 JavaScript는 한 번에 하나씩(Single Thread), 특정 순서(상단 -> 하단)로 실행되도록 만들어졌습니다. 한 줄씩 실행하는 사람은 TE입니다.

"알겠습니다. 하지만 실행한다는 것은 무엇을 의미합니까?"라고 물을 수 있습니다. 예를 들어 보겠습니다.

예시



다음 JavaScript 코드를 작성했다고 가정합니다.

const author = 'Leo'

function validateAuthor(author) {
if(author === 'Spock') {
return true
}
return false
}

validateAuthor(author)



좋습니다. 다음을 살펴보겠습니다.

1- 모든 상수는 어디로 갔습니까?


const author = 'Leo'


여기서 우리는 'Leo' 값을 할당하는 저자라는 상수를 선언하고 있습니다.

그리고, 그뿐만이 아닙니다. 우리는 또한 이 상수를 메모리에 저장했습니다. 이것은 변수 작성자를 사용하여 'Leo' 값에 액세스할 수 있음을 의미합니다.

2- "잘 앉아서 평가해..."


function validateAuthor(author) {
if(author === 'Spock') {
return true
}
return false
}



Functions 작업을 수행하거나 값을 계산하는 일련의 명령문입니다.

그러나 아직 이 기능을 실행하지 않는다는 점에 유의하십시오.
함수를 실행하려면 "()"를 사용해야 합니다.

현재 TE는 이 전체 블록을 메모리에 저장합니다. 그리고 위에서 보았듯이 나중에 사용할 수 있습니다.

3- "전화해"


validateAuthor(author)



마침내, 우리는 우리의 함수를 호출/실행하고 있습니다. TE는 우리가 사용하는 레이블을 확인하고 메모리를 살펴보고 실행합니다.

그리고 그뿐만이 아닙니다. 괄호 안에 레이블 작성자가 표시됩니까? 이것은 이미 메모리에 저장되어 있는 레이블 작성자('Leo')의 값을 함수의 매개변수로 사용하려는 것을 의미합니다.

따라서 'Leo' 값을 잡고 문자열이 'Spock'과 같은지 확인합니다.

그게 다야

관행!



물론 이것은 간단한 예입니다. 그러나 코드가 실행되는 방식에 대한 이해 수준을 만들기 시작하는 것이 중요합니다. 추측하고 그것과 씨름하는 것을 멈추십시오.

그리고 그것을 향상시키는 유일한 방법은 연습입니다. 따라서 작성한 코드를 자신이나 친구에게 어떻게 실행할 것인지 설명하십시오.

그 후에 "기억"등의 의미를 검색하기 시작할 수 있습니다. Curiosity는 개발자인 우리에게 훌륭한 도구입니다.

다음 JS 주제까지!

좋은 웹페이지 즐겨찾기