λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

✏️/JavaScript

[JavaScript / ES6] ES6 문법 정리

 

 

πŸ”— const, let

 

πŸ“Œ var VS const, let

 

 var은 ν•¨μˆ˜ μŠ€μ½”ν”„μ΄λ‹€.

 const, let은 블둝 μŠ€μ½”ν”„μ΄λ‹€. λ”°λΌμ„œ {블둝} λ°–μ—μ„œ λ³€μˆ˜μ— μ ‘κ·Όν•  수 μ—†λ‹€.

 

πŸ“Œ const VS let 

 

 let은 λ³€μˆ˜μ— μž¬ν• λ‹Ήμ΄ κ°€λŠ₯ν•˜λ‹€. λ”°λΌμ„œ λ‹€λ₯Έ 값을 λŒ€μž…ν•΄μ•Ό ν•˜λŠ” 상황이 생겼을 λ•Œ μ‚¬μš©ν•œλ‹€. 

 constλŠ” λ³€μˆ˜μ— ν•œ 번 λŒ€μž…ν•˜λ©΄ λ‹€λ₯Έ 값을 λŒ€μž…ν•  수 μ—†λ‹€.  보톡 기본적으둜 μ‚¬μš©ν•œλ‹€.

 


πŸ”— ν…œν”Œλ¦Ώ λ¬Έμžμ—΄

 

1
2
3
4
5
6
7
const num1 = 1;
const num2 = 2;
const result = 3;
 
const string1 = num1 + '+' + num2 + '=' + result; // κΈ°μ‘΄ λ°©μ‹
 
const string2 = `${num1}+${num2}=${result}` // ES6
cs

 

 λ¬Έμžμ—΄μ„ ν•©μΉ  λ•Œ μ‚¬μš©ν•œλ‹€. ' ' λŒ€μ‹  ` `λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ 감싸고, κ·Έ μ•ˆμ— ${λ³€μˆ˜}λ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λ₯Ό 넣을 수 μžˆλ‹€.

 κΈ°μ‘΄ 방식은 ' ', +, 띄어쓰기λ₯Ό μ—¬λŸ¬ 번 μ‚¬μš©ν•΄μ•Ό ν•˜λ―€λ‘œ 가독성이 쒋지 μ•Šκ³  지저뢄 ν•˜μ§€λ§Œ, ν…œν”Œλ¦Ώ λ¬Έμžμ—΄μ„ μ‚¬μš©ν•˜λ©΄ κΉ”λ”ν•˜κ²Œ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.

 


πŸ”— 객체 λ¦¬ν„°λŸ΄

 

- 같은 객체의 λ©”μ„œλ“œμ— ν•¨μˆ˜λ₯Ό μ—°κ²°ν•  λ•Œ :(콜둠)κ³Ό function을 뢙이지 μ•Šμ•„λ„ λœλ‹€.

- 속성λͺ…κ³Ό λ³€μˆ˜λͺ…이 κ²ΉμΉ˜λŠ” 경우 ν•œ 번만 μ“°λ©΄ λœλ‹€.

- 객체의 속성λͺ…을 λ™μ μœΌλ‘œ 생성할 수 μžˆλ‹€.

 


πŸ”— ν™”μ‚΄ν‘œ ν•¨μˆ˜ (Arrow Function)

 

1
2
3
4
5
6
7
8
// κΈ°μ‘΄ λ°©μ‹
function add1(x, y){
    return x + y;
};
 
 
// ES6
const add2 = (x,y) => x + y;
cs

 

 function μ„ μ–Έ λŒ€μ‹  =>둜 ν•¨μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.

 return문을 쀄일 수 μžˆλ‹€.

 


πŸ”— Rest Parameter

 

 ν•¨μˆ˜μ˜ λ§ˆμ§€λ§‰ νŒŒλΌλ―Έν„° μ•žμ— Spread μ—°μ‚°μž(...)λ₯Ό λΆ™μ—¬ λͺ¨λ“  λ‚˜λ¨Έμ§€ 인수λ₯Ό λ°°μ—΄λ‘œ λ‚˜νƒ€λ‚Έλ‹€.

 

1
2
3
4
5
6
7
8
9
10
11
12
function myFun(a, b, ...manyMoreArgs) {
  console.log("a", a);
  console.log("b", b);
  console.log("manyMoreArgs", manyMoreArgs);
}
 
myFun("one""two""three""four""five""six");
 
// Console Output:
// a, one
// b, two
// manyMoreArgs, [three, four, five, six]
cs

 


πŸ”— 비ꡬ쑰화 ν• λ‹Ή

 

 λ°°μ—΄μ΄λ‚˜ 객체의 속성을 ν•΄μ²΄ν•˜μ—¬ κ·Έ 값을 κ°œλ³„ λ³€μˆ˜μ— 담을 수 μžˆλ‹€.

 


πŸ”— Promise(ν”„λ‘œλ―ΈμŠ€)

πŸ”— async, await

 

[JavaScript / 비동기 처리] AJAX / Callback, Promise, async, await

πŸ“Œ λ™κΈ°(Synchronous) ν”„λ‘œκ·Έλž˜λ° vs 비동기(Asynchronous) ν”„λ‘œκ·Έλž˜λ°  λ™κΈ° ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œκ°€ λ°˜λ“œμ‹œ μž‘μ„±λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” 방식이닀.  λΉ„동기 ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œμ˜ μ²˜λ¦¬κ°€ μ™„λ£Œλ  λ•ŒκΉŒ

devjindev.tistory.com


πŸ”— Class(클래슀)

 

 ν΄λž˜μŠ€λŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ νŠΉμ • 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” μΌμ’…μ˜ ν‹€λ‘œ, 객체λ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•œ μƒνƒœ(멀버 λ³€μˆ˜)와 λ©”μ„œλ“œ(ν•¨μˆ˜)둜 κ΅¬μ„±λœλ‹€.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Person{ // ν΄λž˜μŠ€ μƒμ„±
    constructor(name, age){ // μƒμ„±μž
        this.name = name// ν•„λ“œ(λ³€μˆ˜)
        this.age = age;
    }
    speak(){ // λ©”μ†Œλ“œ
        console.log(`${this.name} hello!`);
    }
}
 
const jin = new Preson('jin'20); // κ°μ²΄ μƒμ„±
 
console.log(jin.name); // jin
jin.speak(); // jin hello!
cs
 

[JavaScript] ν”„λ‘œν† νƒ€μž…(prototype) μ΄λž€

 ν΄λž˜μŠ€(class)λŠ” 객체지ν–₯μ–Έμ–΄μ—μ„œ 빠질 수 μ—†λŠ” κ°œλ…μ΄λ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈλ„ 객체지ν–₯언어이닀. ν•˜μ§€λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ—λŠ” ν΄λž˜μŠ€κ°€ μ—†λ‹€. λŒ€μ‹  ν”„λ‘œν† νƒ€μž…μ΄λΌλŠ” 것이 μ‘΄μž¬ν•œλ‹€. 이것이 μžλ°”μŠ€

devjindev.tistory.com

 


πŸ”Ž μ°Έκ³  자료

πŸ’‘ 같이 λ³΄λ©΄ 쒋을 Post

 

[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀.

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ μ–Έμ–΄μ΄λ‹€. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ™œ 그런 κ²ƒμΌκΉŒ? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–»κ²Œ 'λ™μ‹œμ„±(Concurrency)'을 μ§€μ›ν•˜

devjindev.tistory.com