변수(Variable)란?
어떤 값(데이터)을 담는 저장소(메모리)의 이름을 말한다
변수를 선언(메모리 공간 확보)하고 어떤 값(데이터)을 할당(동적으로 타입 지정)
자바스크립트는 동적타입언어 로 C, C++, Java 와 같은 정적타입언어 와 다르게 변수를 선언할때 데이터 타입을 명시하지 않아도 에러가 발생하지 않습니다
변수에 어떤 데이터 타입을 할당해도 그 값에 따라 동적으로 타입을 지정하기 때문입니다
변수를 선언하고 값을 할당하지 않을 경우에는 정의되지 않았다는 뜻의 undefined 값이 출력됩니다
타입(Type)이란?
변수에 할당 할 수 있는 숫자나 문자와 같은 형태를 말한다
string - 문자열
number - 숫자
boolean - 참/거짓
undefined - 정의되지않음
null - 값이비어있음
symbol
MDN 참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol
object - 객체
array - 배열
function - 함수
변수의 타입을 확인할수 있다
const a = '변수'
typeof a // string
const b = 100
typeof b // number
const c = {}
typeof c // object
===과 !== 의 필요성
===는 비교하는 변수의 값 뿐만 아니라 변수의 타입이 동일한지 확인한다
반면 ‘==’는 변수 값만 비교한다
0 == false // true
0 === false // false
논리적인 일련의 작업 수행하는 하나의 작은 기능의 단위를 함수라고 합니다

함수 선언식
function getTriangleArea(base, height) {
let result = (base * height) / 2;
return result; // return 문이 없으면 'undefined' 반환
}
함수 표현식
const getTriangleArea = function(base, height) {
let result = (base * height) / 2;
return result;
}
화살표 함수
const getTriangleArea = (base, height) => {
let result = (base * height) / 2;
return result;
}
한줄로 작성가능한 식은 return 문 생략 가능
const getTriangleArea = (base, height) => (base * height) / 2;