Firebase for web (웹개발을 위한 파이어베이스) 4 Storage승빈이네 공작소
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database승빈이네 공작소
Firebase for web (웹개발을 위한 파이어베이스) 2 Authentication승빈이네 공작소
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting승빈이네 공작소
Ad
ES6 for Node.js Study
1. ES6 STUDYF I R S T T I M E
2 0 1 8 . 1 0 . 2 0
장 승 빈
2. TODAY SUBJECTS
• ECMA Script 6
• 개발 환경설정 (vscode, nodejs, eslint)
– 프로젝트 초기화
– eslint 설치 및 사용해보기
• 기존 Java Script 문법 (빠르게) 정리
• ES6 시작하기
– let, const
– template literal
– arrow function
3. ECMA SCRIPT
• 국제 기구 ECMA에서 정리한 Script 언어 규칙
– JavaScript에만 쓰는게 아님
• https://ko.Wikipedia.org/wiki/ECMA스크립트
• 스펙 문서
– http://www.ecma-international.org/ecma-262/6.0/
– http://es6-features.org 여기 정도만 봐도…
4. 개발 환경 설정
V I S U A L S T U D I O C O D E
N O D E . J S
E S L I N T
5. VSCODE (VISUAL STUDIO CODE)
• Node가 자동 완성이 됨!!
• 텍스트 편집기 (필수는 아님)
– Atom, Sublime Text, WebStorm 등등
• https://code.visualstudio.com/
6. NODE.JS 설치 확인
• MAC OS – 터미널
• Windows – 파워셀, 명령프롬프트(CMD) 등에서
node –v
7. NODE.JS INSTALL
• 설치되지 않았거나 8.x 대 이하면 설치
• https://nodejs.org/ko/
8. 프로젝트 디렉터리 생성
• 소스 코드를 작성할 프로젝트 디렉터리를 만들어주세요
– MacOS의 경우 시스템 권한이 필요치 않은 곳으로~
• VSCode 에서 프로젝트 디렉토리를 엽니다.
– index.js 파일을 생성합니다.
– console.log("hello es6 study");
• VSCode 에서 ctrl + ` (역따옴표)를 눌러
터미널(CMD) 패널 node index를 실행합니다.
10. 프로젝트 초기화
• 터미널 패널이 열린 상태에서
npm init
• 전부 enter눌러서 기본 설정
• package.json 파일 생김
11. ESLINT INSTALL
• node.js로 만들어진 JavaScript 문법 검사 프로그램
• NPM을 이용해 설치 (npm은 node.js 설치 시 같이 설치됨)
sudo npm install -g eslint
17. 변수와 자료형
• 변수(Variable)의 앞3글자를 따서 var로 선언
– var 변수명 = 값
• 타입을 가리지 않음 (중간에 다른 타입을 넣어도 오류가 발생하지 않음)
• 사용 가능한 타입
– number : 숫자 (정수, 실수를 나누지 않음)
– string : 문자열
– boolean : true/false
– object : 객체 타입 (null 도 속함)
– undefind
– function : 함수
– symbol (es6에서 생김)
32. ES6
L E T, C O N S T
T E M P L AT E L I T E R A L
A R R O W F U N C T I O N
33. 변수 선언 - LET, CONST
• 변수 선언 let, 상수 선언 const
• 중복 선언 불가능
• 유효범위(scope) 관련
– 코드블록 {~}사이에서 유효 (var는 functio의 {~} 안에서만 유효)
– 선언 이후 코드에서 사용가능 (hoisting)
• 기존의 변수 선언 var 키워드는 이제 잊어버리자!
45. ARROW FUNCTION
• function 키워드로 선언하는 함수에 비해 짧고 간결한 표현식
• 모두 익명 함수
• 정적인(lexical) this
function (x, y) {
return x+y;
}
(x, y) => { return x+y; }
46. 생략 가능한 기호
• return 값이 한줄에 간단히 표현 가능하다면
블록 괄호와 return 키워드가 생략이 가능하다
(x, y) => { return x+y; }
(x, y) => x+y;
• Parameter가 1개일때 () 괄호 생략이 가능하다.
하지만 없거나 2개 이상이면 꼭 사용해야 한다.
(x) => { return x*x; }
X => { return x*x; }
X => x*x; 보다 고급 구문
47. LEXICAL THIS
• function 키워드로 선언된 함수들은
this의 범위를 함수 내부으로 새로 정의 되었습니다.
• 화살표 함수로 정의된 함수는 this를
새로 정의하지 않습니다.
function someFunc() {
// ...
setTimeout(function(){
console.log( this );
}, 1000);
}
function someFunc() {
// ...
setTimeout(
()=>{ console.log( this ); }
, 1000 );
}
48. LEXICAL THIS
function someFunc() {
// ...
let to1 = setTimeout(
()=>{ console.log( this.to1 ); } // 접근 가능!
, 1000 );
let to2 = setTimeout(function(){
console.log( this.to2 ); // undefined
}, 1000);
}