July 27th 2018
' You've got to get the fundamentals down because otherwise the fancy stuff insn't goint to work. - Last Lecture by Randy Pausch '
이번 포스팅에는 Javascript를 더 깊이 이해하기 위해, 다시 한 번 초석을 다진다는 개념으로 Javascript의 기본 개념이면서 조금은 까다롭고 하지만 반드시 이해해야 하는 부분들을 정리하고 넘어가고자 합니다.
1. Values & Types 어떠한 Application이 작동할 때, 애플리케이션 동작에 필요한 여러 데이터의 관리가 필요합니다. 이러한 데이터는 컴퓨터의 메모리 어딘가에 저장이 된다고 합니다.
Javascript Interpreter가 코드를 해석하며 경우에 따라 데이터를 별도로 저장하기도 합니다. 어떠한 값이 만들어지면, JS Interpreter는 그 값을 데이터 타입(number, string, array, boolean)과 함께 구분합니다.
2. Operators, Expressions and Statements Literal과 value 외에 프로그램을 만들기 위한 연산자로 operator가 있습니다. Operator는 주위의 데이터를 바탕으로 어떠한 작업을 진행하게 합니다.(ex, +, -) 이러한 literal, variables, operators로 컴퓨터에 어떠한 작업을 요청하는 것을 expression이라고 하고, expression은 어떤한 결과값을 가집니다.
Javascript Interpreter가 expression을 처리할 때, 그 expresssion의 (일실적으로라도) 결과값을 메모리에 할당합니다.
Javascript의 Operator 우선 순위에 대한 정보는 아래 링크 참조 바랍니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
Javascript는 프로그램은 expression뿐만 아니라 statement로 함께 구성됩니다. 하나의 또는 복합된 expression 끝에 ;을 표기함으로 그 문장을 종료시키고 Interpreter가 다음 code로 넘어가게 합니다.
아래와 같이 expressions에 세미콜론(;)을 추가해 문장을 종료 시키면, 해당 결과값은 향후 다시 사용할 수 없습니다. 세미콜론이 Interpreter에게 아래 코드를 종료하고 다음 코드로 넘어가도록 명령했기 때문입니다.
이 경우 Variable에 담는 등의 방법을 통해, 해당 결과값을 향후 다시 도출할 수가 있습니다.
(2 + 2) * 7;
"Variable always refer to values, not to other variables."
저는 개인적으로 변수를 Data를 그릇에 담고 포스트잇으로 이름을 붙여 놓은 것이라고 생각합니다. 변수를 사용하면 compound expression으로 정의된 복잡해 보이는 값을 간단하게 표현할 수 있습니다.
Variable은 객체와 같이 어떠한 데이터가 있는 영역을 참조하고 있지 않습니다. Variable에 어떠한 값이 할당되면 그 값 자체를 가리킵니다. 말이 조금 애매한데, 아래와 같이 정리해 보겠습니다.
var a = 3 + 2; // a = 5
var b = a; // b = 5
a = 8; // a = 8
console.log(b); // b = 5
이와 같이, variable은 다른 variable을 가리키지 않고 항상 어떠한 값을 가리킵니다. 그렇기 때문에, 위의 마지막 code의 variable b의 값은 5가 됩니다.