node.js
브라우저와 달리 dom이 존재하지않는다
현대 프론트엔드는 다양한node.js 모듈을 활용하며, npm 생태계를 활용
npm (node.js에서 외부 라이브러리를 다운받는 대표적인 방법)
npm install
: package.json에 필요한 npm을 다운
package.json
npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일
프로젝트 전반에 관한 정보가 들어있다 (필요한 모듈, 실행방법, 테스트 방법 )
필요한 실제모듈들은 node_modules이라는 폴더에 저장
한마디로 전자제품 카탈로그라 생각하면된다
devDependencies
개발에 필요한 모듈 정보
프로젝트에 필요한 모듈들 명시 (키 = 모듈이름 , 값 = 버전 )
실제 프로젝트 동작에는 직접적 영향을 끼치지않음
npm install mocha --save-dev (devDependencies 에 자동으로 추가됨)
dependencies
실행에 필요한 모듈 정보
이프로젝트에 반드시 필요한 모듈
npm install react --save
--save 옵션과 함께 (생략 가능)install (자동으로 dependencies에 추가)
scripts
CLI에서 사용가능한 명령어 (npm script)
npm run '스크립트 이름' : 실행
ES6 문법
화살표 함수
let arrow = function (매개변수) { return "arrow function"}
→ let arrow = (매개변수) ⇒ "arrow function"
return 마저 생략하려면 { } 중괄호 생략 but ( ) 소괄호 사용 가능
→ let arrow = (매개변수) ⇒ ("arrow function")
파라미터가 단 한개라면 ( ) 생략 가능
→ let arrow = 매개변수 ⇒ "arrow function"
Spread/Rest
spread 문법은 immutable 하다
배열 let array = [...spread] → (= spread.slice())
객체 let obj 1 = { a: 1 , b: 2} , obj2 = {a: 2 , c: 3} , obj3 = { ...obj1, ...obj2} → obj3 = {a: 2, b: 2, c: 3}
Destructing (구조분해)
구조분해 할당은 Spread문법으로 값을 해체한후 , 개별 값을 변수에 새로 할당하는 과정