변수는 '하나의 값을 저장하기 위한 이름을 가진 공간'을 의미한다.
쉽게 이해하자면, 여러번 사용할 때 편하도록 이름을 붙이는 일인데 이를 변수를 할당한다고 한다.
let name = '성윤'
을 한다면 name이라는 네임택 붙인 사물함에 '성윤'이라는 정보를 집어넣어 놓는 것이다.
이 사물함에는 숫자, 문자, 문자열, 논리값 전부 들어갈 수가 있지만 딱 한개의 값만 들어갈 수 있다.
이 네임택을 쓸 때에는 공백이 들어갈 수 없고, 기본적으로 영어로 작성하게 되는데, 띄어쓰기는 할 수 없으므로 일반적으로 단어의 첫 글자를 대문자로 사용하여 구분한다.
(ex. PointOfView )
변수 할당시, 변수의 type이 정해지게 되는데 string(문자열), number(숫자), boolean(참과 거짓 구분), undefined 등이 있다.
변수 type의 확인이 필요할 때, typeof를 사용하면 확인이 가능하다.
let name = '성윤';
let age = 27;
let orange;
let lie = 1>2;
를 입력한다면
typeof name // 은 string
typeof age // 는 number
typeof orange // 는 undefined (정의되지 않음)
typeof lie // 는 boolean
이 나오게 된다.
함수란 작업을 수행하기 위해 설계된 코드의 묶음으로, 입력값과 출력값을 가지며 반드시 돌아온다(return).
특정 공식이나 행동을 여러번 반복해야할때, 함수를 사용하는데,
세가지로 방식으로 만들 수 있다.
함수 선언식
function example1(x) {
console.log('hello');
return x
} // 함수 선언
함수 표현식
const example2 = function (x) {
console.log('hello')
return x
};// 변수 example2에 함수 할당
example2(); // 함수 호출
화살표 함수
const square = (x) => { return x*x };
여기서 함수 선언식과, 함수 표현식의 차이는 함수 선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다는것이다.
이 이외에도 클로저로 사용하거나 콜백으로 사용할 때, 함수 표현식이 유리한 면이 있다.
호이스팅이나, 콜백, 클로저에 대해서는 추후 공부 내용에서 다룰 예정이다.