🀍 은지log 🀍

ES6 λ³Έλ¬Έ

🍊 Grammar

ES6

Eun_zii 2022. 9. 28. 14:26

let κ³Ό const (var μ‚¬μš©μ•ˆν•¨βŒ)

: 블둝 레벨 μŠ€μ½”ν”„

  • var은 μŠ€μ½”ν”„ μ™Έμ—μ„œλ„ μ‹€ν–‰
  • ν˜Έμ΄μŠ€νŒ…(hoisting: 어디에 μ„ μ–Έν–ˆλƒ 상관없이 항상 μ œμΌμœ„λ‘œ 선언을 λŒμ–΄μ˜¬λ €μ£ΌλŠ”κ²ƒ)
  • let, constλŠ” μŠ€μ½”ν”„ λ‚΄μ—μ„œλ§Œ μ‹€ν–‰
console.log(i); // (μ—λŸ¬κ°€ μ•„λ‹ˆκ³ ) undefined
var i = 0;
console.log(i); // 0
// 해석 κ²°κ³Ό
var i;
consoloe.log(i);
i =0 ;
console.log(i);
console.log(i);
let i = 0;
console.log(i);
// Uncaught SyntaxError: Identifier 'i' has already been declared (iκ°€ μ •μ˜λ˜μ§€ μ•Šμ•˜λ‹€.)
  • let κ³Ό constλŠ” 블둝 μŠ€μ½”ν”„λΌ {}(μ€‘κ΄„ν˜Έ) μ‚¬μš©
  • {} λ‚΄μ—μ„œ μ‚¬μš©μ‹œ κ΄„ν˜Έλ°–μ—μ„œ μ‚¬μš© κΈˆμ§€ 🚫
let i; // 곡톡 μŠ€μ½”ν”„ μ„ μ–Έ
const a = () => {
  i = 1; // let을 ν• λ‹Ήν•˜μ§€ μ•Šμ•„λ„ μ‚¬μš© κ°€λŠ₯
}
const b = () => {
  i = 2; // let을 ν• λ‹Ήν•˜μ§€ μ•Šμ•„λ„ μ‚¬μš© κ°€λŠ₯
}
console.log(i); // a,bμ—μ„œ 같은 i 값을 닀루고 μ‹Άμ„λ•Œ 곡톡 μŠ€μ½”ν”„μ—μ„œ 선언을 
//                 ν•΄μ•Ό 각각 ν• λ‹Ήν•˜μ§€ μ•Šμ•„λ„ λ‘˜λ‹€ 적용 κ°€λŠ₯.

 

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

function 8κΈ€μž λŒ€μ‹ μ— => 둜 쀄여 μ‚¬μš© κ°€λŠ₯.

const a = function () {
  return 3;
  };
 
const b = () => 3;
// μœ„,μ•„λž˜ κ°™μŒ. ν™”μ‚΄ν‘œ ν•¨μˆ˜(=>) μ‚¬μš©μ‹œ {},return μƒλž΅ κ°€λŠ₯

default parameter

const a = (a, b = 5) => // ν•¨μˆ˜ μ„ μ–Έν•˜λŠ”κ³³μ—μ„œ b값을 μ •ν•΄μ€„μˆ˜ 있음
a(3);

ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄

``(백팁) ,  $ {} μ‚¬μš©

"제 이름은 " + name + "μž…λ‹ˆλ‹€.";
`제 이름은 ${name}μž…λ‹ˆλ‹€` // μœ„,μ•„λž˜ κ°™μŒ. ""와 + λ₯Ό μ€„μ—¬μ“Έμˆ˜ 있음.

비ꡬ쑰화 ν• λ‹Ή

const obj = { name: "coco", nation: "korea" };
// const name = obj.name
// const nation = obj.nation
const { name, nation } = obj; // 같은 μ½”λ“œ.

name;
nation; // μœ„μ—μ„œ 비ꡬ쑰화 ν• λ‹Ή 선언을 ν–ˆκΈ° λ•Œλ¬Έμ— λ°‘μ—μ„œλŠ” 객체만 μ‚¬μš© κ°€λŠ₯. 
//        (obj.name / obj.nation μ½”λ“œ 길게 μ‚¬μš© ν•˜μ§€ μ•Šμ•„λ„ 됨.)

펼침 μ—°μ‚°μž

λ°°μ—΄μ΄λ‚˜ κ°μ²΄μ—μ„œ κ°€μ Έμ˜€κ³  싢은것 or 좔가할것듀을 λ³΅μ‚¬ν•΄μ„œ μƒˆλ‘œμš΄ κ°’, 배열을 λ§Œλ“€μ–΄λ‚Όμˆ˜ μžˆλ‹€.

const arr = [1, 2, 3];
const arr2 = [ ...arr ] // ...μ‚¬μš©μ‹œ arr 내에 1,2,3 이 arr2 [] 에 할당됨.
const arr2 = [0, ...arr, 4]; 
console.log(arr2); 
[0,1,2,3,4] // μ•žλ’€λ‘œ 좔가도 κ°€λŠ₯.

//객체(obj)도 λ˜‘κ°™μ΄ μ‚¬μš©κ°€λŠ₯. 

μ›μ‹œνƒ€μž…&μ°Έμ‘°νƒ€μž…

μ›μ‹œνƒ€μž… : λ³€μˆ˜μ˜ κ°’ 자체λ₯Ό μ €μž₯ (μ’…λ₯˜: Number,String,null,undefined)
μ°Έμ‘°νƒ€μž… : 값이 λ‹΄κΈ΄ μ£Όμ†Œλ₯Ό μ €μž₯ (μ’…λ₯˜: Object, Array, Function ...) 

 

μ›μ‹œνƒ€μž…

let a = 3; // 3
let b = a; // 3
/
a = 5; // a = 5
b = 3; 
// 처음 bλ₯Ό a의 값인 3으둜 μ„ μ–Έν–ˆκΈ° λ•Œλ¬Έμ— 쀑간에 a 값이 λ°”λ€Œμ–΄λ„ bλŠ” 처음 μ„ μ–Έν•œ '3'이닀. 
// <값이 μ €μž₯된 μ›μ‹œνƒ€μž…>

μ°Έμ‘°νƒ€μž…

const a = [ 0,1,2 ]; // [0,1,2]
const b = a; // [0,1,2]
/
a[0] = 3; // a = [3,1,2]
b = [3,1,2]; 
// 처음 bλ₯Ό μ„ μ–Έν• λ•Œ a의 배열이 μœ„μΉ˜ν•œ μ£Όμ†Œκ°€ b에 μ €μž₯ 되기 λ•Œλ¬Έμ— 쀑간에 a 값이 λ°”λ€Œμ–΄λ„ 
// bλŠ” μ£Όμ†Œλ₯Ό μ €μž₯ν•˜κΈ°μ— 값이 같아진닀.
// < 값이 λ‹΄κΈ΄ μ£Όμ†Œκ°€ μ €μž₯된 μ°Έμ‘°νƒ€μž…>
728x90

'🍊 Grammar' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

CI/CD  (0) 2022.11.01
CRUD  (0) 2022.11.01
REST API  (0) 2022.10.23
jQuery 와 AJAX  (0) 2022.10.23
λ°°μ—΄ μΆ”κ°€ 와 μ‚­μ œ  (0) 2022.09.28