Javascript의 변수 선언에는 3가지 방법이 있다.
var x; // 변수를 선언함과 동시에 값을 초기화
let y; // 블록 범위(Block scope) 지역 변수를 선언함과 동시에 값을 초기화
const z; // 블록 범위(Block scope)의 읽기 전용 상수를 선언
let num; // 선언
num = 100; // 할당
let oneTwoThree = 123 // 선언과 할당을 동시에
let str1 = 'string', num1 = 123 // 정답
let str2 = 'string', let num2 = 123 // 오답
const MY_BIRTHDAY = '9월 4일';
const COLOR_RED = '#f00';
C나 Java 등의 프로그래밍 언어에는 정수 타입 변수, 부동소수점 타입 변수 등이 있고 그 변수의 타입과 일치하는 데이터만 저장할 수 있다. 이런 언어를 가리켜 정적 타입 언어라고 부르는데,
자바스크립트는 변수에 타입이 없어서 모든 타입의 데이터를 저장할 수 있다.
let pi = 3.14
console.log(pi) // 3.14
pi = '원주율'
console.log(pi) // 원주율
변수 pi에 3.14라는 숫자를 대입했지만 그 후에 다시 '원주율'이라는 문자열을 대입할 수 있다. 이처럼 실행할 때 변수에 저장된 데이터 타입을 동적으로 바꿀 수 있는 언어를 가리켜 동적 타입 언어라고 부른다.
때문에 자바스크립트를 사용할 때는 프로그램을 실행할 때 발생하는 타입 변환에 주의해야 한다.
function getName(name) { // keyword name(parameter)
// body
}
선언과 함께 메모리의 어떤 공간에 보관된다.
function cal(param1, param2) {
console.log(param1 + param2)
return param1 * 10
}
function getTriangleArea(base, height) {
let triangleArea = (base * height) / 2
return triangleArea // return값이 없으면 undefined를 반환한다.
}
console.log(getTriangle(2, 4)) // 4
변수를 선언하고 변수에 익명 함수를 할당한다.
const getTriangleArea = function (base, height) {
let triangleArea = (base * height) / 2
return triangleArea
}
const getTriangleArea = (base, height) => {
let triangleArea = (base * height) / 2
return triangleArea
}
화살표 함수는 본문(body)에 return문만 있는 경우
return과 {}중괄호(curly bracket)를 생략할 수 있다.
const getTriangleArea = (base, height) => base * height / 2
return만 생략할 경우 정상적으로 작동하지 않는다.
즉, 중괄호만 쓸 수 없다.
그러나 소괄호는 사용할 수 있다.
const getTriangleArea = (base, height) => {base * height / 2} // undefined 반환
const getTriangleArea = (base, height) => (base * height / 2) // 정상 작동
// 함수 선언 = 매개변수(parameter)
// 함수를 실행할 때 바뀔 수 있는 변수
function cal(param1, param2) {
// body
}
// 함수 호출 = 전달 인자(argument)
// 함수를 호출할 때 매개변수에 할당되는 값
cal(10, 20)
// 1. 함수가 호출된다.
// 2. 보관함에 있던 함수가 조회된다.
let result = cal(10, 20)
// 6. 함수 호출 코드가 리턴값으로 바뀐다.
// let result = 100
// 3. 함수의 파라미터가 호출 시 전달된 인자로 바뀐다.
// 4. 파라미터 평가가 완료되면 코드가 순차적으로 실행된다.
// 5. 함수가 return하면 호출된 장소로 돌아가게 된다.
function cal(param1, param2) {
console.log(param1 + param2)
return param1 * 10
}