자바 스크립트에는Java언어처럼 Class 개념이 없음(ES6부터 생긴 Class라는 문법은 존재함).기존의 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어
3. 동적 타입 언어
let num = 1;
const word = 'A';
변수를 선언할 때 타입을 지정해주지 않음.
Typescript : Javascript에 타입을 부여하여 컴파일 단계의 오류를 포착할 수 있게 해줌. 코드의 가독성 증가 및 디버깅 용이
4. 함수가 일급 객체
Javascript에서 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있음.
❓일급객체란
변수에 할당(assignment)할 수 있음
다른 함수를 인자(argument)로 전달 받을 수 있음
다른 함수의 결과로 반환(return)받을 수 있음
// 1. calculate라는 변수에 "함수"를 할당
const calculate = function (num) {
return num + 2;
};
console.log(calculate(2)); // 4
// 2. 다른 함수를 인자로 전달 받기
function calculate(num) {
return num + 2;
}
function newCalculate(func, num) {
return func(num) + 2;
}
console.log(newCalculate(calculate, 2)); // 6
// 3. 다른 함수의 결과로 반환
const add = (num1) => {
return (num2) => {
console.log(num1 + num2);
};
};
add(2)(3); //5
// 처음에는 이해가 잘 안됬는데
// "add(2)"를 통해 add라는 함수의 내부에 접근하고
// "add(2)"가 "num2라는 매개변수가 필요한 함수를 반환"하므로,
// "add(2)"자체가 새로운 함수식이 되어 "add(2)(3)"이 "newAdd(3)"처럼 쓰였다고 보면 됨.