SlideShare a Scribd company logo
ECMAScript 6
let
//es6
{
let version = 1.8;
console.log( version ); //1.8
}
console.log( version ); //version is not defined
//old
{
var version = 1.8;
console.log( version ); //1.8
}
console.log( version ); //1.8
상수
const version = 1.0;
version = 1.5 //syntaxError ‘version is read-only
var version = 1.5; //syntaxError ‘Duplicate declaration ‘version’
Default arguments
//es6
function sum( a, b = 30 ){
return a + b;
};
//old
function sum( a, b ){
b = b || 30;
return a + b;
};
rest arguments
function sumAll( a, b, ...num ){
var r = a + b;
for( let i = 0, len = num.length; i < len; i++){
r += num[ i ];
}
return r;
}
sumAll( 1, 2, 4, 5, 6, 8 );
arrow function
// es6
var getName = () => ‘myName';
//old
var getName = function(){
return ‘myName'
};
iterator
var nums = [1, 2, 3, 4, 5];
var iterator = new Iterator( nums );
try{
while( true ){
let value = iterator.next();
console.log( value );
}
}catch( e ){};
Generator
function* gener() {
for (var i = 0; i < 10; i++) {
yield i * 2;
}
}
var generator = gener();
generator.next();
generator.next();
class
//old
var User = function( name, age ){
this._name = name;
this._age = age;
}
User.prototype.getInfo = function(){
return this._name + '/' + this._age;
}
};
//es6
class User{
constructor( name, age ){
this._name = name;
this._age = age;
}
getInfo(){
return this._name + '/' + this._age;
}
};
class 상속
//es6
class Member extends User{
constructor( name, age ){
super( name, age );
this._company = ‘myCompany';
}
get company(){
return this._company;
}
};
//old
var Member = function( name, age ){
User.apply( this, artuments );
this._company = ' myCompany';
}
Member.prototype = new User();
Member.prototype.constructor = User;
User.prototype.company = function(){
return this._company;
};
promise
function delay( ms ){
return new Promise( function( resolve, reject ){
setTimeout( resolve, ms );
})
};
delay( 2000 ).then(function(){
console.log( '[promise1]' );
}).then(function(){
console.log( '[promise2]' );
});
funciton aFunc(){
console.log( ‘aFunc’ );
};
funciton bFunc(){
console.log( ‘bFunc’ );
};
function callback(){
aFunc();
bFunc();
};
function delay( ms, callback ){
setTimeout( function(){
callback();
}, ms);
};
module
import * as lib from 'js/external.js';
console.log( lib.multi( 4, 5 ) );
//js/external.js
export function multi(x, y){
return x * y;
};
template
var name = "Bob", time = "today";
var string = 'Hello ${name}, how are you ${time}?';
list matching
var [ a, b, c ] = [ 1, 2, 3 ];
console.log( a + c ) // 4
선언
var company = 'nc';
var obj = { company };
console.log( obj.company ); //nc
var value = 'nc';
var obj = { ‘company’: value };
console.log( obj.company ); //nc
Set, map
var s = new Set();
s.add( 'one' );
s.add( 'two' );
s.add( '3' );
console.log( s );
var m = new Map();
m.set( 'age', 10 );
console.log( m.get( 'age' ) );

More Related Content

Ecma script6

  • 2. let //es6 { let version = 1.8; console.log( version ); //1.8 } console.log( version ); //version is not defined //old { var version = 1.8; console.log( version ); //1.8 } console.log( version ); //1.8
  • 3. 상수 const version = 1.0; version = 1.5 //syntaxError ‘version is read-only var version = 1.5; //syntaxError ‘Duplicate declaration ‘version’
  • 4. Default arguments //es6 function sum( a, b = 30 ){ return a + b; }; //old function sum( a, b ){ b = b || 30; return a + b; };
  • 5. rest arguments function sumAll( a, b, ...num ){ var r = a + b; for( let i = 0, len = num.length; i < len; i++){ r += num[ i ]; } return r; } sumAll( 1, 2, 4, 5, 6, 8 );
  • 6. arrow function // es6 var getName = () => ‘myName'; //old var getName = function(){ return ‘myName' };
  • 7. iterator var nums = [1, 2, 3, 4, 5]; var iterator = new Iterator( nums ); try{ while( true ){ let value = iterator.next(); console.log( value ); } }catch( e ){};
  • 8. Generator function* gener() { for (var i = 0; i < 10; i++) { yield i * 2; } } var generator = gener(); generator.next(); generator.next();
  • 9. class //old var User = function( name, age ){ this._name = name; this._age = age; } User.prototype.getInfo = function(){ return this._name + '/' + this._age; } }; //es6 class User{ constructor( name, age ){ this._name = name; this._age = age; } getInfo(){ return this._name + '/' + this._age; } };
  • 10. class 상속 //es6 class Member extends User{ constructor( name, age ){ super( name, age ); this._company = ‘myCompany'; } get company(){ return this._company; } }; //old var Member = function( name, age ){ User.apply( this, artuments ); this._company = ' myCompany'; } Member.prototype = new User(); Member.prototype.constructor = User; User.prototype.company = function(){ return this._company; };
  • 11. promise function delay( ms ){ return new Promise( function( resolve, reject ){ setTimeout( resolve, ms ); }) }; delay( 2000 ).then(function(){ console.log( '[promise1]' ); }).then(function(){ console.log( '[promise2]' ); }); funciton aFunc(){ console.log( ‘aFunc’ ); }; funciton bFunc(){ console.log( ‘bFunc’ ); }; function callback(){ aFunc(); bFunc(); }; function delay( ms, callback ){ setTimeout( function(){ callback(); }, ms); };
  • 12. module import * as lib from 'js/external.js'; console.log( lib.multi( 4, 5 ) ); //js/external.js export function multi(x, y){ return x * y; };
  • 13. template var name = "Bob", time = "today"; var string = 'Hello ${name}, how are you ${time}?';
  • 14. list matching var [ a, b, c ] = [ 1, 2, 3 ]; console.log( a + c ) // 4
  • 15. 선언 var company = 'nc'; var obj = { company }; console.log( obj.company ); //nc var value = 'nc'; var obj = { ‘company’: value }; console.log( obj.company ); //nc
  • 16. Set, map var s = new Set(); s.add( 'one' ); s.add( 'two' ); s.add( '3' ); console.log( s ); var m = new Map(); m.set( 'age', 10 ); console.log( m.get( 'age' ) );