본문 바로가기
IT 공부/JS

ES6 (es2015)

by woohot 2022. 8. 17.

TypeScript의 기반이 되는, 클래스 문법과 모듈 기능 추가, IE9 부터 지원

 

  • 호이스팅이 사라진 것 같은 효과
  • 함수 단위 스코프에서 블록 단위 스코프로 변경
  • this를 동적으로 바인딩하지 않는 화살표 함수
  • 모듈화 지원
  • 콜백 지옥에서 구원해줄 Promise
  • Default, Rest 파라미터
  • 해체 할당, Spread 연산자
  • 템플릿 리터럴

 

 

추가된 문법

비구조화 할당 (Destructuring Assignment)

ES5

var name = req.body.name 
var age = req.body.age 
var email = req.body.email

ES6

const  {name,age,email}= req.body

 

객체 초기자 ( Object Initialize - Property Shorthand )

ES5
var name = 'hak' 
var age = 27 
var email = 'code.ryan.lee@gmail.com' 
var datas = { name: name, age: age, email: email }

ES6
let name = 'hak' 
let age = 27 
let email = 'code.ryan.lee@gmail.com' 
let datas2 = {username: name, age, email}

 

 

Template Literals

ES5
var username = req.body.username 
if ( !username ) { 
	throw "'username' must required. Your input: " + username + "." 
}


ES6
let = req.body 
if ( !username ) {
	throw `'username' must required. Your input: $.` 
}

 

기본 매개변수( Default Parameters )

ES5 
var greeting = function(username, date, message) { 
	username = typeof username !== 'undefined' ? 
		username : 'anonymous' date = typeof date !== 'undefined' ? date : new Date() message = typeof message !== 'undefined' ? message : 'hello' return message + ' ' + username + ' at ' + date }

ES6
const greeting = (username='anonymous', date=new Date(), message='hello') => {
	return `$ $ at $` 
}

 

Promise

const getName = (user_id) => {
	return new Promise( (resolve, reject) => {
        if ( !user_id ) {
            return reject('user_id must be required.') 
        } 

        Model.select('table_users', user_id) 
            .then( result => { resolve( result.username ) }) 
            .catch( err => { reject( err ) }) 
	}); 
	
}

 

Generator  ( co모듈 )

const gen = (a,b,c,conn) => {
	return new Promise((resolve,reject) => {
		return co(function* (){
			try{
				yield async1(a);
				yield async1(b);
				yield async1(c);
				resolve(true);
			}catch(e) {
				reject(e);
			}finally{
				conn = null;
			}
		})
	})
}

 

'IT 공부 > JS' 카테고리의 다른 글

프로토 타입  (0) 2023.03.30
호이스팅  (0) 2023.02.13
스코프 에 대해  (0) 2023.02.03
sequelize js 사용법  (0) 2023.02.02
console.[ ? ? ]  (0) 2023.01.09
ES7 (ES2016) 이후 문법 정리  (0) 2022.08.17

댓글