CommonJS란 무엇인가?
=> 브라우저 환경 밖인 Node.js에서 모듈 생태계를 구축하기 위해 만든 규칙들 이라고 말할 수 있다.
모듈 생태계를 만들기 위해 어떤 것들이 필수적으로 요구되는 가?
=> require 함수로 모듈을 불러와서 사용 (ex. require('모듈명' || './js파일'))
=> module.exports 객체를 통해 모듈로써 이용당할 수 있게 설정
require 함수의 작동 방식의 특징
=> require.cache 에 이미 불러온 module.exports 객체들의 정보는 저장되어 있어, 동일한 모듈을 재호출 할 시 require.cache에 있는 값을 사용하고 실제 모듈을 실행시키지 않는다. 즉, 한번 require로 사용해본 모듈은 처음에만 실행되고 재호출 시에는 실행되지 않는다.
유사배열이란?
=> 양끝에 [] 대괄호가 씌어져 있어 배열과 형태가 같지만, Array.isArray로 타입을 검사해보면 배열이 아니고 이에 따라 배열메소드를 사용할 수 없는 객체이다.
유사배열이지만 forEach나 map같은 배열메소드를 사용하려면?
=> Array.prototype과 call이나 apply 메소드를 사용하면 가능하다.
=> Array.prototype은 [] 로 사용할 수도 있다.
=> [].map.call(유사배열, function)
! 점점 배울 게 많다는 게 느껴진다. 다행히 재미있다.