값을 저장하는 컨테이너. 보관함. 메모리 공간.
데이터 보관함에 데이터를 넣을 공간을 확보한다는 뜻.
//선언하기
let x;
//할당하기
x = 33;
//선언과 동시에 할당하기
let y = 42;
정적 타입 언어
(예: C, C++, Java)의 경우 변수 선언시 할당할 데이터 타입을 명시적으로 선언해야 한다. 즉 타입에 따른 메모리 용량을 처음부터 고려해 선언해야 한다.
동적 타입 언어
(예: JavaScript)는 데이터 타입을 선언하지 않아도 값에 따라 동적으로 타입을 지정해 준다. 변수 선언시 타입에 따른 메모리 용량을 고려할 필요가 없다.
각 메모리 셀은 1바이트(8비트) 크기로 표준화되어 있다. 변수는 정확히 말하면 값이 아니라 값이 담긴 각 메모리 셀의 메모리 주소를 기억한다.
변수에 값을 할당하면 자바스크립트 엔진이 타입에 맞는 메모리 공간을 확보한다.
빈 데이터 (값을 할당하지 않았을 때)
undefined는 변수에 값이 등록되기 전의 기본값이고,
null은 변수에 저장된 값이 null임을 가리킨다.
특정 값의 타입을 알고 싶을 때 사용한다.
typeof 변수 또는 데이터
형태로 사용
논리적인 일련의 작업을 하는 하나의 단위.
function square(number){
return number * number;
}
const getRectArea = function(width, height){
return width * height;
};
const x = function(y){
return y*y;
};
=>
표현을 사용해 보다 짧은 문법으로 함수를 선언할 수 있다.const getTriangleArea = (base, height) => {
let area = (base * height) / 2;
return area;
};
본문이 한 줄인 함수를 작성할 때 다음과 같이 중괄호와 return을 생략해 작성할 수 있다.
let sum = (a, b) => a + b;
let double = n => n * 2;
let sayHi = () => alert("안녕하세요!");
본문이 여러 줄인 함수를 작성할 때는 중괄호와 return을 써 줘야 한다.
let sum = (a, b) => { // 중괄호는 본문 여러 줄로 구성되어 있음을 알려줍니다.
let result = a + b;
return result; // 중괄호를 사용했다면, return 지시자로 결괏값을 반환해주어야 합니다.
};
매개변수(parameter)란 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미한다.
인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 값을 말한다. (호출할 때 넣어주는 실제 값)
- 문법과 자료형 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Grammar_and_types
- 책 <Do it! 자바스크립트 + 제이쿼리 입문>
- 화살표 함수 : https://ko.javascript.info/arrow-functions-basics