Node.JS는 자바스크립트가 기반이 되는 언어입니다. 따라서 자바스크립트를 모르는 경우에는 프로그램을 만들 수 없습니다. 자바스크립트를 잘 알고 있는 경우에는 이 페이지를 넘어가도 좋으나, 전혀모르는 경우는 이 페이지를 정독하시기를 권장합니다.
1. 자바스크립트의 객체
자바스크립트의 변수는 다른 언어에서와 같이 데이터를 담아두는 상자입니다. 하지만 C언어와 자바와 같은 타입 기반의 언어(Type Based Language)는 메모리를 절약하기 위해 정수와 문자열을 선언 할 때 자료형(Type; int,String)을 지정합니다.
그러나 자바스크립트는 이러한 자료형을 따로 명시하지 않고 var 키워드를 사용하여 변수를 선언합니다. 타입 기반 언어와 자바스크립트의 변수 선언의 차이는 아래와 같습니다.
Type Based
int number = 10;
String name = 'Rekt77';
JavaScript
var number = 10;
var name = 'Rekt77';
자바스크립트에서는 변수를 var로 처리하여 간결하고 쉬워보이지만 실제로 변수의 크기는 같지 않다는 점을 주의해야 합니다. 그리고 다른 크기의 변수가 만들어지지만 var만 사용하므로 변수의 크기를 명확히 알 수없습니다. 이때문에 타입을 확인 할 수 있도록 자바스크립트에서는 typeof 연산자를 제공합니다. 또한 문자열을 숫자로 변환할 수 이도록 parseInt(), parseFloat()등의 함수도 제공합니다.
변수 자료형
배열을 하나 선언하고 그 안에 다양한 자료형을 선언한 후 출력하여 보겠습니다.
var Data = {};
Data['age'] = 20;
Data['name'] = Rekt77;
console.log('age : %d',Data.age);
console.log('name : %s',Data.name);
위의 결과를 통하여 정상적으로 출력 되었음을 확인 할 수 있습니다.
2. 자바스크립트의 함수
자바스크립트에서는 함수를 만들 때에도 자료형을 명시하지 않기 때문에 function 키워드를 사용하여 간단하게 함수를 제작할 수 있습니다. 아래는 타입 기반 언어와 자바스크립트의 함수선언 방식 차이를 나타낸 것입니다.
Type Based
int add(int a, int b){
...
}
JavaScript
function add(a,b){
...
}
자바스크립트 함수 정의 방법
아래는 기본적인 함수의 정의 방법입니다.
function add(a,b){
return a+b;
}
위와 다르게 이번경우에는 변수를 선언하여 함수를 할당하였습니다. 이 경우에는 변수 이름과 함수 이름이 중복되기 때문에 함수의 이름을 지정하지 않고 선언해야 합니다.
함수를 변수에 할당하는 과정에서 함수의 이름이 삭제되어 fuction 키워드 뒤에 곧바로 소괄호가 붙는 형태로 만들어지는데, 이것을 익명 함수(Anonymous function)라고 합니다. 함수를 익명함수로 변수에 할당할 때는 함수를 선언하는 선언문 (Declaration)이 아니라 일반 수식처럼 표현식(Expression)으로 처리됩니다.
var add = function(a,b){
return a+b;
}
함수를 호출하는 경우
일반 함수와 익명 함수는 함수를 호출하는 방법이 서로 같습니다. 선언된 함수에 인자값을 넣어서 함수를 실행합니다.
add(10,10);