- 변수는 모든 프로그래밍 언어를 학습할 때 가장 기본인 동시에 가장 중요한 개념
변수에 대해서 제대로 이해하지 못하면,
앞으로 학습할 내용을 이해하는 것은 거의 불가능
변수는 컴퓨터와 개발자 사이에 새롭게 규정한 명사
예를 들어, ‘아래 그림은 어떤 과일일까?’라는 질문을 한다면 어떻게 대답을 할 수 있을까?

출처: https://m.khan.co.kr/national/national-general/article/202309271907035#c2b
아마 ‘사과’라는 답변을 하는데 어려움이 없을 것이다.
하지만 컴퓨터는 이 과일을 알아볼 수 없으며,
컴퓨터와 개발자 사이에 이 과일을 ‘사과’라고 부르겠다는 약속이 필요
let apple = '사과';
이 코드를 보다 정확히 설명하자면,
개발자가 컴퓨터에게 새로운 변수 apple을 규정하고(변수 선언),
문자열 ‘사과’라는 값을 설명(값 할당)한 것과 같다.
변수를 선언할 때는 let 키워드를 사용합니다. 값을 할당할 때는 할당 연산자(=)를 사용
할당연산자는 수학 문제를 풀 때처럼 ‘같다’라는 의미가 아니라
변수에 값을 할당할 때 쓰는 연산자라는 것을 반드시 기억
변수가 개발자와 컴퓨터 사이에 명사를 규정하는 작업이라면,
함수는 동사를 규정하는 작업
countLength라는 함수를 만들어서 문자열의 글자수를 세는 함수를 만들면 아래와 같다.
function countLength (string) {
return string.length;
}
countLength라는 함수를 만들었다.
이 코드는 개발자와 컴퓨터가 countLength라는 동사를 약속한 것과 같다.
각 요소를 하나씩 설명
function 키워드: 함수를 선언하는 키워드
countLength: 개발자와 컴퓨터가 약속한 함수의 이름
(string): 함수에서 사용할 변수, 외부에서 값을 전달하면 string에 값이 할당되어 함수 내부에서 사용
return 키워드: 함수 내부의 코드가 실행된 후 결과를 반환(return)하는 키워드
함수 내부에서 반환한 키워드를 함수 외부에서 사용할 수 있음
string.length: 외부에서 전달받은 문자열의 길이를 의미
다시 말해 countLength는 특정한 문자열을 입력하면, 그 문자열의 길이를 외부로 반환해주는 함수
예를 들어 ‘사과’를 전달하면 2, ‘바나나’를 전달하면 3이 반환
그렇다면 외부에서 함수 내부로 전달하려면 어떻게 해야할까?
// 함수의 호출
countLength('사과');
이렇게 함수명 뒤에 ()를 붙이면 함수를 호출
이때 ()안에 값을 넣으면 이 값이 함수 안에서 매개변수 string에 할당
즉 위와 같이 호출하면, countLength 함수 내부에서 string이 ‘사과’가 되어
함수 내부의 코드가 한 번 실행
이 함수는 입력된 문자열의 길이를 반환하는 함수이므로, 반환되는 값은 2
function countLength (string) {
return string.length;
}
// countLength 함수에 '사과'를 전달하고 반환된 값을 appleCount 변수에 할당
let appleCount = countLength('사과');
console.log(appleCount); // 2
// countLength 함수에 '바나나'를 전달하고 반환된 값을 bananaCount 변수에 할당
let bananaCount = countLength('바나나');
console.log(bananaCount); // 3
console.log(appleCount + bananaCount); // 5
appleCount 변수에는 숫자 2, bananaCount 변수에는 숫자 3이 할당되어 있으므로, 두 값을 더하면 5
*console.log()는 console에 값을 출력하는 코드
