개발 기본 상식

출처 : https://github.com/junh0328/prepare_frontend_interview/

* 함수 🔥

* 자바스크립트에서 함수를 정의하는 방법은 몇가지가 있나요?

  1. named function declaration (명명 함수 선언)

  2. anonymous function expression (익명 함수 표현)

  3. named function expression (명명 함수 표현)

  4. Immediately-invoked expression (즉시 실행 표현)

  5. function constructor

  6. arrow function (화살표 함수)

* 함수 선언문과 함수 표현식은 어떤 차이가 있나요?

함수 선언식 - Function Declarations

일반적인 프로그래밍 언어에서의 함수 선언과 비슷한 형식이다.


function 함수명() {
  구현 로직
}
JsCopy
// 예시
function funcDeclarations() {
  return 'A function declaration';
}
funcDeclarations(); // 'A function declaration'

함수 표현식 - Function Expressions

유연한 자바스크립트 언어의 특징을 활용한 선언 방식


var 함수명 = function () {
  구현 로직
};
JsCopy
// 예시
var funcExpression = function () {
    return 'A function expression';
}
funcExpression(); // 'A function expression'

함수 선언식과 표현식의 차이점

함수 선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다.

함수 선언식은 코드를 구현한 위치와 관계없이 자바스크립트의 특징인 호이스팅에 따라 브라우저가 자바스크립트를 해석할 때 맨 위로 끌어 올려진다

* 즉시 실행 함수(IIFE)에 대해 알고 있나요? 알고 있다면 아는 내용에 대해 말해보세요

* 스코프 🔥

* 스코프가 뭔가요? 🔥🔥🔥

* 스코프에는 어떤 종류가 있죠? 🔥🔥

* 렉시컬 스코프를 아나요? 안다면 렉시컬 스코프는 무엇을 의미하나요? 🔥

* 전역 변수로 변수를 선언하면 생기는 문제점은 무엇이 있을까요?

* 생성자 함수에 의한 객체 생성 🔥

* 생성자 함수가 뭔가요?

* 객체 리터럴로 만들 때와는 무슨 차이가 있죠? 왜 생성자 함수를 사용하나요?

* 생성자 함수가 객체(인스턴스)를 생성하는 과정에 대해 간략하게 설명해줄 수 있나요?

* 함수와 일급 객체 🔥

* 일급 객체가 뭔가요?

* 자바스크립트에서 함수가 일급 객체라면, 일급 객체로 뭘 할 수 있나요?

* 꼬리 질문) 함수형 프로그래밍이 뭔가요? 🔥🔥

* 꼬리 질문) 순수 함수가 뭔가요? 일반 함수와는 어떤 차이가 있죠? 🔥🔥