์ƒˆ์†Œ์‹

Languages/Java Script

Template Literals | Destructuring | class

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ์ธํ”„๋Ÿฐ ECMAScript6: ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šฐ๋Š” ES6 ์Šคํ‚ฌ๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋žจ ์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "๊น€ํ˜•ํƒœ"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

www.inflearn.com/course/es6-ecmascript-6

 

ECMAScript 6: ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šฐ๋Š” ES6 ์Šคํ‚ฌ๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ธํ”„๋Ÿฐ

๋น„๋™๊ธฐ ํ™˜๊ฒฝ์—์„œ ์‰ฝ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ES6์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šคํ‚ฌ์„ ํ–ฅ์ƒ์‹œ์ผœ ๋ณด์„ธ์š”. ์ดˆ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ES6 ์˜จ๋ผ์ธ ๊ฐ•์˜ abcdefghijk

www.inflearn.com


1. Template Literals 

 

 # ํ‘œํ˜„์‹๊ณผ ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด

- ๋ฐฑํ‹ฑ(backtick) ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

- ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ํ‘œํ˜„์‹์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.(์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์˜ ์™ธ๋ถ€ ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.)

 

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜์—ฌ,

์‹ฑ๊ธ€์ฟผํ…Œ์ด์ด์…˜ ๋˜๋Š” ๋”๋ธ” ์ฟผํ…Œ์ด์…˜์ด ์•„๋‹Œ ๋ฐฑํ‹ฑ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ ํ•˜๋Š” ๋ฐฉ์‹์„ "ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ํ‘œํ˜„์‹"์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 

์œ„์™€ ๊ฐ™์€ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋ฉ€ํ‹ฐ๋ผ์ธ ์ŠคํŠธ๋ง์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ($๋Š” ํ‘œํ˜„์‹ ์‚ฌ์šฉ์ž„. ํ‘œํ˜„์‹์œผ๋กœ ๊ณ„์‚ฐ์‹์„ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค.)

 

ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, ์œ„์˜ 6๋ฒˆ ๋ผ์ธ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

2. Destructuring

 

#๋น„๊ตฌ์กฐํ™” ํ• ๋‹น

 

- ๊ตฌ์กฐํ™”๋œ object๋‚˜ array๋ฅผ ๋น„๊ตฌ์กฐํ™” ํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹น

 

๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ jsonํ˜•์‹์˜ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ๋ณ€์ˆ˜์— ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ๋‹ค.

let data = [{
	
    const : 1,
    list: [{
    
        name : ["jack","paul"],
        group : "sports"
    }] 
}]

let [{count, list: [{name,group}]}] = data;
console.log(`
count : ${count}
group : ${group}
`)

let ์„ ์–ธ์ž ์˜†์— ๋ฐฐ์—ด ํ‘œํ˜„์‹์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ๋ฐฐ์น˜๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.(๊ฐ์ฒด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž„)

 

์•„๋ž˜ ์ฝ”๋“œ๋„ ๋ณด๋ฉด Productobject์—์„œ ์ธ์ž๋กœ ๊ฐ์ฒด ํ‘œํ˜„์‹์„ ๋ฐ›๊ณ  ์žˆ๋‹ค. ํ•จ์ˆ˜์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•  ๋•Œ ๋น„ ๊ตฌ์กฐํ™” ํ• ๋‹น์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ตฌ์กฐ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

function productObject({name, price, color}) {
    return {
    productName : "This product name : " + name,
    addToCart(){
        console.log(name + "is added");
     },
     detailView(){
        console.log(`
        ${productName}
        price : ${price}
        color : ${color}
        `);
     }
   };
}
var {productName, addToCart, detailView} = productObject({name:"apple", price:199, color:"silver"});
addToCart();
detailView();

 

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

3. class

 

# ํด๋ž˜์Šค(: class)

๊ธฐ์กด์—๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•  ๋•Œ function์„ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ‘œํ˜„๋ ฅ์ด ๋–จ์–ด์ง€๋‹ค ๋ณด๋‹ˆ ์ฝ”๋“œ์˜ ๋ณต์žก๋„๊ฐ€ ์ปค์กŒ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด classํ‚ค์›Œ๋“œ๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํŽธ๋ฆฌํ•ด์กŒ๋‹ค.

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด classํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜์˜€๊ณ  ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” constructor๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•˜์˜€๊ณ  ์ด๋Š” ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ 

ํ˜ธ์ถœ์ด ๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

class Lang {
	
    constructor(name){
    	this.name = name;
    }
    getName(){
    	return this.name;
    }
}
let lang = new Lang("Language");
console.log("Lang.getName();" + lang.getName());

๋‹ค์Œ๊ณผ ๊ฐ™์ด! ํด๋ž˜์Šค๋Š” newํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•œ๋‹ค.

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ „๋‹ฌํ•œ ์ธ์ž Language ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋˜์–ด name์„ ์ดˆ๊ธฐํ™” ํ•˜์˜€์œผ๋ฉฐ, getName๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด Language๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์ด๋‹ค.

 

# class ์ƒ์†

- extends ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋“ค์ฒ˜๋Ÿผ ์ƒ์†์ด ๊ฐ€๋Šฅ.

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž

class Lang {
    constructor(name){
    	this.name = name;
    }
    getName(){
    	return this.name;
    }
}
let lang = new Lang("Language");
console.log("lang.getName();"+ lang.getName());

class Javascript extends Lang{
	constructor(name) {
    	super(name);
    }
}
let js = new JavaScript("JavaScript");
console.log("js instanceof JavaScript : " + (js instanceof JavaScript));
console.log("js instanceof Lang : " + (js instanceof Lang));
console.log("js.getName():" + js.getName());
    

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž์‹ ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๋ ค๋ฉด ๋จผ์ € ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋ฏ€๋กœ,  super๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

 

 

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

์ด ์˜ˆ์ œ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ :

 

- js๋Š” javascript์ƒ์„ฑ์ž๋กœ ์ƒ์„ฑ๋œ instance ์ด๋ฉด์„œ, 

 javascript๊ฐ€ Lang์˜ ์ž์‹ ํด๋ž˜์Šค ์ด๋ฏ€๋กœ "Lang์˜ ์ธ์Šคํ„ด์Šค ์—ฌ๋ถ€๊ฐ€ true๊ฐ€ ๋‚˜์˜จ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค"๋ผ๋Š” ๊ฒƒ.

 

- ๋˜ํ•œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์•„ ์ •์˜ํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜๊นŒ์ง€๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

#์ •๋ฆฌ

 

-  class ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.

- ํด๋ž˜์Šค์™€ ์ƒ์†์œผ๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์˜€๋‹ค.

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.