[JavaScript] ES6 문법

정희쀀·2023λ…„ 3μ›” 14일
0
post-thumbnail

🏷 μ•Œμ•„λ³Ό λ‚΄μš©

  • ES6 문법!
    ν˜„μž¬ λ‚΄κ²Œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©° λ§Žμ€ 도움이 λ˜λŠ”
    μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν‘œμ€€ 문법인 ES6문법에 λŒ€ν•΄ μ•Œμ•„λ³΄μž!! πŸ”₯πŸ”₯πŸ”₯

πŸ“Œ ES6 ??

ESλž€ ECMAScript의 μ•½μžμ΄λ©° μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν‘œμ€€,κ·œκ²©μ„ λ‚˜νƒ€λ‚΄λŠ” μš©μ–΄μ΄λ©°
6λŠ” 버전을 λœ»ν•˜λ©° 2015년에 μΆœμ‹œ λ˜μ—ˆλ‹€! κ·Έλ¦¬ν•˜μ—¬ ECMAScript 2015λ‘œλ„ μ•Œλ €μ Έ μžˆλ‹€!
자주 μ‚¬μš©λ˜λŠ” ES6의 μ—…λ°μ΄νŠΈ 된 κΈ°λŠ₯에 λŒ€ν•΄ μ•Œμ•„λ³΄μž!

  • let, const ν‚€μ›Œλ“œ
  • ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄
  • ν™”μ‚΄ν‘œ ν•¨μˆ˜
  • κΈ°λ³Έ λ§€κ°œλ³€μˆ˜
  • ꡬ쑰 λΆ„ν•΄ ν• λ‹Ή
  • Promise
  • Classes
  • String Method(includes,startsWith,endsWith)

let, const ν‚€μ›Œλ“œ

let : λ³€μˆ˜ μ„ μ–Έ ν‚€μ›Œλ“œλŠ” μž¬μ„ μ–Έμ€ λΆˆκ°€λŠ₯ ν•˜μ§€λ§Œ μž¬ν• λ‹Ήμ΄ κ°€λŠ₯ν•œ ν‚€μ›Œλ“œ
const : μƒμˆ˜ μ„ μ–Έ ν‚€μ›Œλ“œλ‘œ μž¬μ„ μ–Έκ³Ό μž¬ν• λ‹Ήμ΄ λΆˆκ°€λŠ₯ν•˜λ‹€ 즉, 객체와 ν•¨κ»˜ μ‚¬μš©ν•  λ•Œλ₯Ό μ œμ™Έν•˜κ³ λŠ” λ³€κ²½ λΆˆκ°€λŠ₯ν•œ λ³€μˆ˜
let, const : λΈ”λ‘μŠ€μ½”ν”„λ₯Ό 가지고 μžˆλ‹€.

μœ„μ²˜λŸΌ letκ³Ό const ν‚€μ›Œλ“œμ˜ λ“±μž₯으둜 κΈ°μ‘΄ var ν‚€μ›Œλ“œλ§Œ μ‘΄μž¬ν–ˆμ„λ•Œ 보닀 예츑 κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό μž‘μ„± ν• μˆ˜ 있게 λ˜μ—ˆλ‹€


ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄(Template Literals)

ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄μ€ λ¬Έμžμ—΄μ„ μ—°κ²°ν•˜κΈ° μœ„ν•΄ + μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†κ³ 
λ°±ν‹±(`)을 μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄ λ‚΄μ—μ„œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

// 적용 μ „
function template_literals(str1,str2) {
  return 'ν…œν”Œλ¦Ώ ' + str1 + ' μ΄λ ‡κ²Œ' + str2;
}

// 적용 ν›„
function template_literals(str1,str2) {
  return `ν…œν”Œλ¦Ώ ${str1} μ΄λ ‡κ²Œ ${str2}`
}

console.log(template_literals('λ¦¬ν„°λŸ΄','μ‚¬μš©ν•΄'))	// 'ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄ μ΄λ ‡κ²Œ μ‚¬μš©ν•΄'

ν™”μ‚΄ν‘œ ν•¨μˆ˜

ν•¨μˆ˜ ν‘œν˜„μ‹μ„ ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ ν‘œν˜„ν•  수 있으며
ν•¨μˆ˜λ₯Ό κ°„κ²°ν•˜κ²Œ λ‚˜νƒ€λ‚Ό 수 μžˆκ²Œλ˜μ–΄ 가독성이 μ˜¬λΌκ°”λ‹€

// 적용 μ „
function arrow(){
	return 'λ‚˜λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜' 
}

// 적용 ν›„
const arrow = () => {
	return 'λ‚˜λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜'
}

// ν™”μ‚΄ν‘œ ν•¨μˆ˜ μ‚¬μš© μ‹œ return만 μžˆλŠ” 경우 μƒλž΅ κ°€λŠ₯
const arrow = () => 'λ‚˜λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜'

κΈ°λ³Έ λ§€κ°œλ³€μˆ˜(Default parameters)

λ§€κ°œλ³€μˆ˜λ₯Ό 찾을 수 μ—†μ„λ•Œ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄
λ§€κ°œλ³€μˆ˜κ°€ μ •μ˜ λ˜μ§€ μ•Šμ•˜μ–΄λ„ ν•΄λ‹Ή κ°’μœΌλ‘œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€

// 적용 μ „
function template_literals(str1,str2) {
  return `ν…œν”Œλ¦Ώ ${str1} μ΄λ ‡κ²Œ ${str2}`
}
console.log(template_literals('λ¦¬ν„°λŸ΄'))	// 'ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄ μ΄λ ‡κ²Œ undefined'

// 적용 ν›„
function template_literals(str1,str2 = 'μ‚¬μš©ν•΄') {
  return `ν…œν”Œλ¦Ώ ${str1} μ΄λ ‡κ²Œ ${str2}`
}

console.log(template_literals('λ¦¬ν„°λŸ΄'))	// 'ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄ μ΄λ ‡κ²Œ μ‚¬μš©ν•΄'

ꡬ쑰 λΆ„ν•΄ ν• λ‹Ή

ꡬ쑰 λΆ„ν•΄ ν• λ‹Ήμ΄λž€ νŽΌμΉ˜λ‹€λž€ 뜻으둜 κ°μ²΄λ‚˜ λ°°μ—΄μ—μ„œ μ‚¬μš©ν•˜λ©°
값을 ν•΄μ²΄ν•œ ν›„ κ°œλ³„ 값을 λ³€μˆ˜μ— μƒˆλ‘œ ν• λ‹Ήν•˜λŠ” 과정을 λ§ν•œλ‹€.

// λ°°μ—΄
const arr = [1, 2, 3];
const [one, two, three] = arr;
one    // 1
two    // 2
three  // 3

// 객체
const obj = {
 	name : '철수',
  	age : 22
};

const {name, age} = obj;
name  // '철수'
age   // 22

Promise

κΈ°μ‘΄ 비동기 μ²˜λ¦¬λŠ” 콜백 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ²˜λ¦¬ν•˜μ˜€λŠ”λ° 콜백이 반볡 λ˜λ‹€λ³΄λ‹ˆ μ½œλ°±ν—¬μ„ μœ λ°œμ‹œμΌ°λ‹€
이λ₯Ό λŒ€μ²΄ν•˜κΈ° μœ„ν•΄ Promiseκ°€ λ„μž…λ˜μ—ˆκ³  Promise ν›„μ†μ²˜λ¦¬ λ©”μ†Œλ“œλ₯Ό 톡해 API μ‚¬μš© μ‹œ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€

더 μžμ„Έν•œ μ½”λ“œμ™€ μ„€λͺ…은 μ•„λž˜ 링크λ₯Ό μ°Έμ‘° λ°”λžλ‹ˆλ‹€
Promise ν¬μŠ€νŒ…


Classes(클래슀)

classλŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)의 핡심이고 μ½”λ“œλ₯Ό λ”μš± μ•ˆμ „ν•˜κ²Œ μΊ‘μŠν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€
ν•˜μ§€λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘œν† νƒ€μž… 기반의 객체 지ν–₯ 언어이닀.
κ·Έλž˜μ„œ λ„μž…λœκ²Œ class ν‚€μ›Œλ“œλ‹€

class myClass {
	constructor(name, age) {
		this.name = name;
		this.age = age;
	}
}

const user = new myClass('영희', 22);

console.log(user.name); // 영희
console.log(user.age); // 22

// 상속 적용 μ‹œ
class myClass {
	constructor(name, age) {
		this.name = name;
		this.age = age;
	}

	sayHello() {
		console.log(`μ•ˆλ…• ${this.name} λ„ˆμ˜ λ‚˜μ΄λŠ” ${this.age}살이닀`);
	}
}

// myClass λ©”μ„œλ“œ 및 속성 상속
class UserProfile extends myClass {
	userName() {
		console.log(this.name);
	}
}

const profile = new UserProfile('영희', 22);

profile.sayHello(); // μ•ˆλ…• 영희 λ„ˆμ˜ λ‚˜μ΄λŠ” 22살이닀.
profile.userName(); // 영희

String Method(includes,startsWith,endsWith)

ν¬ν•¨λ˜μ–΄μžˆλŠ”μ§€(includes), μ‹œμž‘ν•˜λŠ”μ§€(startsWith), λλ‚˜λŠ”μ§€(endsWith)
boolean νƒ€μž…μ„ return ν•΄μ€€λ‹€.

const str = 'Hello World Hanamon';
str.includes("Hana"); // true
str.startsWith("Hello"); // true
str.endsWith("mon"); // true

참고자료

profile
같이 μΌν•˜κ³  싢은 μ‚¬λžŒμ΄ λ˜μ–΄λ³΄μž! λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” 개발 λΈ”λ‘œκ·Έ.

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보