μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- history api
- fetch API
- float
- μκ³ λ¦¬μ¦
- μλ°μ€ν¬λ¦½νΈ
- position
- Gatsby
- REACT
- λΈλ‘κ·Έ
- νλ‘κ·Έλλ¨Έμ€
- λ°λΈμ½μ€3κΈ°
- Props
- useRef
- Flex
- λ°λΈμ½μ€
- νλ‘ νΈμλ
- CSS
- useEffect
- μ½λ©ν μ€νΈ
- Today
- Total
Daehyunii's Dev-blog
36μ₯ λμ€νΈλμ²λ§ ν λΉ λ³Έλ¬Έ
36μ₯ λμ€νΈλμ²λ§ ν λΉ
Daehyunii 2022. 7. 28. 13:19λμ€νΈλμ²λ§ ν λΉμ ꡬ쑰νλ λ°°μ΄κ³Ό κ°μ μ΄ν°λ¬λΈ λλ κ°μ²΄λ₯Ό ꡬ쑰 νκ΄΄νμ¬ 1κ° μ΄μμ λ³μμ κ°λ³μ μΌλ‘ ν λΉνλ κ²μ λ§νλ€. λ°°μ΄κ³Ό κ°μ μ΄ν°λ¬λΈ λλ κ°μ²΄ 리ν°λ΄μμ νμν κ°λ§ μΆμΆνμ¬ λ³μμ ν λΉν λ μ μ©νλ€.
36.1 λ°°μ΄ λμ€νΈλμ²λ§ ν λΉ
ES5μμ ꡬ쑰νλ λ°°μ΄μ λμ€νΈλμ²λ§νμ¬ 1κ° μ΄μμ λ³μμ ν λΉνλ λ°©λ²μ λ€μκ³Ό κ°λ€.
//ES5μμ λμ€νΈλμ²λ§νμ¬ λ³μμ ν λΉ
var arr = [1, 2, 3];
var one = arr[0];
var two = arr[1];
var three = arr[2];
console.log(one, two, three); // 1 2 3
ES6μμμ λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ λ°°μ΄μ κ° μμλ₯Ό λ°°μ΄λ‘λΆν° μΆμΆνμ¬ 1κ° μ΄μμ λ³μμ ν λΉνλ€. μ΄λ λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ λμμ μ΄ν°λ¬λΈμ΄μ΄μΌ νλ©°, ν λΉ κΈ°μ€μ λ°°μ΄μ μΈλ±μ€λ€. μ¦, μμλλ‘ ν λΉλλ€.
//ES5μμ λμ€νΈλμ²λ§νμ¬ λ³μμ ν λΉ
var arr = [1, 2, 3];
const[one, two, three] = arr;
console.log(one, two, three); // 1 2 3
λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ μν΄μλ ν λΉ μ°μ°μ μΌμͺ½μ κ°μ ν λΉλ°μ λ³μλ₯Ό μ μΈν΄μΌ νλ€. μ΄λ λ³μλ₯Ό λ°°μ΄ λ¦¬ν°λ΄ ννλ‘ μ μΈνλ€.
μ΄λ μ°λ³μ μ΄ν°λ¬λΈμ ν λΉνμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
const[one, two, three]; // SyntaxError λ°μ
const[one1, two2, three3] = {} // TypeError λ°μ
λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ κΈ°μ€μ λ°°μ΄μ μΈλ±μ€λ€. μ¦, μμλλ‘ ν λΉλλ€. μ΄λ λ³μμ κ°μμ μ΄ν°λ¬λΈμ μμ κ°μκ° λ°λμ μΌμΉν νμλ μλ€.
const[a, b] = [1, 2];
console.log(a, b); // 1 2
const[c, d] = [1];
console.log(c, d); // 1 undefined
const[e, f] = [1, 2, 3];
console.log(e, f); // 1 2
λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ μν λ³μμ κΈ°λ³Έκ°μ μ€μ ν μ μλ€.
// κΈ°λ³Έκ°
const[a, b, c = 3] = [1, 2];
console.log(a, b, c); // 1 2 3
// κΈ°λ³Έκ°λ³΄λ€ ν λΉλ κ°μ΄ μ°μ νλ€.
const[e, f = 10, g = 3] = [1, 2];
console.log(e, f, g); // 1 2 3
λ°°μ΄ λμ€νΈλμ²λ§ ν λΉμ μν λ³μμ Rest νλΌλ―Έν°μ μ μ¬νκ² Rest μμ ...μ μ¬μ©ν μ μλ€. Rest μμλ λ°λμ λ§μ§λ§μ μμΉν΄μΌ νλ€.
const[x, ...y] = [1, 2, 3];
console.log(x, y); // 1 [2, 3]
36.2 κ°μ²΄ λμ€νΈλμ²λ§ ν λΉ
ES5μμ κ°μ²΄μ κ° νλ‘νΌν°λ₯Ό κ°μ²΄λ‘λΆν° λμ€νΈλμ²λ§νμ¬ λ³μμ ν λΉνκΈ° μν΄μλ νλ‘νΌν° ν€λ₯Ό μ¬μ©ν΄μΌ νλ€.
var user = { firstName : 'Ungmo', lastName : 'lee' };
var firstName = user.firstName;
var lastName = user.lastName;
console.log(firstName, lastName); // Ungmo lee
ES6μ κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ κ°μ²΄μ κ° νλ‘νΌν°λ₯Ό κ°μ²΄λ‘λΆν° μΆμΆνμ¬ 1κ° μ΄μμ λ³μμ ν λΉνλ€. μ΄λ κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ λμμ κ°μ²΄μ΄μ΄μΌ νλ©°, ν λΉ κΈ°μ€μ νλ‘νΌν° ν€λ€. μ¦, μμλ μλ―Έκ° μμΌλ©° μ μΈλ λ³μ μ΄λ¦κ³Ό νλ‘νΌν° ν€κ° μΌμΉνλ©΄ ν λΉλλ€.
var user = { firstName : 'Ungmo', lastName : 'lee' };
const {firstName,lastName} = user;
console.log(firstName, lastName); // Ungmo lee
κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ μν΄μλ ν λΉ μ°μ¬μ μΌμͺ½μ νλ‘νΌν° κ°μ ν λΉλ°μ λ³μλ₯Ό μ μΈν΄μΌ νλ€. μ΄λ λ³μλ₯Ό κ°μ²΄ 리ν°λ΄ ννλ‘ μ μΈνλ€. μ΄λ μ°λ³μ κ°μ²΄ λλ κ°μ²΄λ‘ νκ°λ μ μλ ννμμ ν λΉνμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
const {firstName,lastName} // SyntaxError λ°μ
const {firstName2,lastName2} = null; // TypeError λ°μ
κ°μ²΄μ νλ‘νΌν° ν€μ λ€λ₯Έ λ³μ μ΄λ¦μΌλ‘ νλ‘νΌν° κ°μ ν λΉλ°μΌλ €λ©΄ μ½λ‘ (:)μ μ¬μ©ν΄ λ³μλ₯Ό μ μΈνλ€.
const user = { firstName : 'Ungmo', lastName : 'lee' };
const {firstName : foo,lastName : bar} = user;
console.log(foo, bar); // Ungmo lee
κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ μν λ³μμ κΈ°λ³Έκ°μ μ€μ ν μ μλ€.
const {firstName : foo = 'Ungmo', lastName : bar} = {lastName : 'lee'}
console.log(foo, bar); // Ungmo lee
κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ κ°μ²΄μμ νλ‘νΌν° ν€λ‘ νμν νλ‘νΌν° κ°λ§ μΆμΆνμ¬ λ³μμ ν λΉνκ³ μΆμ λ μ μ©νλ€. λν κ°μ²΄ λμ€νΈλμ²λ§ ν λΉμ μν λ³μμ Rest νλΌλ―Έν°λ Rest μμμ μ μ¬νκ² Rest νλ‘νΌν° ...μ μ¬μ©ν μ μλ€. Rest νλ‘νΌν°λ λ°λμ λ§μ§λ§μ μμΉν΄μΌ νλ€.
const { x, ...rest } = { x : 1, y : 2, z : 3 };
console.log(x, rest); // {y: 2, z: 3}
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
38μ₯ λΈλΌμ°μ μ λ λλ§ κ³Όμ (0) | 2022.07.28 |
---|---|
37μ₯ Setκ³Ό Map (0) | 2022.07.28 |
35μ₯ μ€νλ λ λ¬Έλ² (0) | 2022.07.28 |
34μ₯ μ΄ν°λ¬λΈ (0) | 2022.07.27 |
32μ₯ String (0) | 2022.07.27 |