변수를 사용하려면 먼저 변수의 이름을 선언해야 하는데, 이 때 'let'을 이용하여 할당하고,
변수명에는 공백을 사용할 수 없으며, 한 번 선언한 변수를 다시 쓸 때는 let을 생략한다.
(같은 변수를 2번 이상 선언하게 되면 문법 오류가 발생한다)
변수 이름을 선언한 뒤 그 변수가 불러올 데이터를 할당한다
이름과 생년월일(연/월/일 분리)을 선언하고 할당할 때
let name = '홍길동'; let birthYear = 1990; let birthMonth = 12; let birthDay = 31;
let name, birthYear, birthMonth, bitthDay; name = '홍길동'; birthYear = 1990; birthMonth = 12; birthDay = 31;
두 방법 모두 사용할 수 있고, 상황에 따라 선택해서 사용하는 것이 좋을 듯 하다.
함수는 해당 함수의 이름을 직접 할당하여 사용할 수 있다.
function functionName(input) { // 함수 본문 }
let functionName = function(input) { // 함수 본문 }
함수에 들어가는 변수(예시에서는 input 부분)는 함수 실행 시 입력에 따라 바뀔 수 있으며, 함수에서 사용할 입력값은 매개변수(parameter)라고 칭한다.
50km/h의 속도로 200km의 거리를 갈 때 걸리는 시간을 구하는 함수
let timeToGoHome = function(speed, distance) { let time = distance / speed; console.log(time); } timeToGoHome(50, 200)
먼저 함수를 선언(let timeToGoHome)한 뒤 매개변수(speed, distance)를 할당하고,
함수가 연산해야 하는 내용(distance를 speed로 나누기)을 지정한 뒤 console.log(time)으로 반환,
선언한 함수에 전달인자를 입력(timeToGoHome(50, 200))함으로 연산을 진행한다.
그런데!!! 이렇게 연산을 하면 범위 문제 때문에 콘솔에는 결과값을 반환하지만, 함수 외부에서 사용할 수는 없다.
위 예시에서는 timeToGoHome 안에서 time에 대한 선언을 했고, 전달인자 또한 timeToGoHome함수에 대해 입력하였기 때문에 연산이 완료된 뒤 time변수를 입력해도 아래와 같이 아무것도 반환되지 않는다.
let timeToGoHome = function(speed, distance) { let time = distance / speed; console.log(time); } // let time의 범위는 여기서 종료 // timeToGoHome(10, 200) // 20으로 반환됨 time; // undefined으로 반환됨 let time = timeToGoHome(10, 200) // 20으로 반환됨 time; // undefined으로 반환됨
이 때에는 3번째줄의 console.log(10, 200) 대신에 return time;을 이용하면 함수 밖으로 결과를 '출력'하게 되고, 이렇게 출력된 값을 다른 함수에서도 전달인자로 이용할 수 있다.
let timeToGoHome = function(speed, distance) { let time = distance / speed; return time; } timeToGoHome(10, 200) // 20으로 반환됨 let myTime = timeToGoHome(20, 100); console.log(myTime); // 5로 반환됨