멀티패러다임 = 논리형, 함수형, 객체지향등 여러가지의 패러다임을 지원한다는 의미로 멀티패러다임이라 칭한다
인터프리터 = 런타임 이후 행 단위로 해석하며 프로그램을 구동시키는 방식 (컴파일과는 대조대는 방식)
JIT(just-in-time) 컴파일러 = 바이트코드를 컴퓨터 프로세서(CPU)로 직접 보낼 수 있는 명령어(원시 시스템 코드)로 바꾸는 프로그램 (원시 시트템 코드로 변환되는 과정이 실시간으로 일어난다고 하여 just-in-time이라 칭한다)
First-Class Functions(FCF) = 'First-Class Citizens(FCC)'으로 취급되는 기능. 함수가 argument로 전달이 되고, function에서 함수를 return하거나 변수에 함수를 할당할 수 있다는 것을 의미한다
Fisrt-Class Citizen(FCC) = FCC는 argument로 전달이 가능하고 function내 에서 return 될 수 있으며 변수에 할당 가능한 객체들을 의미한다
// 변수에 대입
const foo = function() {
console.log("footer");
};
foo();
// 함수를 인자로 전달
function hello() {
return "hello world!";
};
function greeting(hellofunc, name) {
console.log(hellofunc() + name);
};
greeting(hello, "JavaScript!");
// 함수 반환
const sayHello = function() {
return function() {
console.log("Hello!");
}
};
const helloFunc = sayHello();
helloFunc();
sayHello()();
paradigm: 코딩 스타일과 기술을 지시하는 코드 구조의 접근법과 사고방식
유명한 paradigm 3가지
1-4-1. Procedural programming = 절차적 프로그래밍
1-4-2. Object-oriented programming (OPP) = 객체 지향 프로그래밍
1-4-3. Functional programming (FP) = 함수형 프로그래밍
paradigm의 두가지 분류: Imperative(명령형) or Declarative(선언형)