πŸ“ λ³€μˆ˜

πŸ’‘ λ³€μˆ˜ : λ°”λ€” 수 μžˆλŠ” κ°’

πŸ’¬ let

πŸ’¬ var (거의 μ‚¬μš© X)

⚠ λ˜‘κ°™μ€ μ΄λ¦„μœΌλ‘œ μ—¬λŸ¬ 번 μ„ μ–Έ X

πŸ’‘ μƒμˆ˜ : 고정적인 κ°’

πŸ’¬ const

πŸ’‘ null : "값이 μ—†λ‹€"λ₯Ό μ„€μ •ν•  λ•Œ

πŸ’‘ undefined : 값이 아직 μ„€μ •λ˜μ§€ μ•Šμ•˜μ„ λ•Œ

πŸ“ μ—°μ‚°μž

πŸ’‘ μ—°μ‚° μˆœμ„œ

πŸ’¬ NOT -> AND -> OR

πŸ’‘ 비ꡐ μ—°μ‚°μž

πŸ’¬ == : 두 값이 μΌμΉ˜ν•˜λŠ” μ§€ 비ꡐ (νƒ€μž… 포함 X) / !=

πŸ’¬ === : 두 값이 μΌμΉ˜ν•˜λŠ” μ§€ 비ꡐ (νƒ€μž… 포함) / !==

const equals = (1 == '1');
console.log(equals);           //true
const isequals = (1 === '1');
console.log(isequals);         //false

const equals = (0 == false);
console.log(equals);           //true

const equals = (null == undefined);
console.log(equals);           //true

console.log(1 != '1');         //false
console.log(1 !== '1');        //true

πŸ“ ν•¨μˆ˜

πŸ’‘ function ν‚€μ›Œλ“œ

function add(a, b) {
  return a + b;
}

const sum = add(1, 2);
console.log(sum);  // 3

πŸ’¬ λ¬Έμžμ—΄ μ‘°ν•© μ‹œ + μ‚¬μš©

function fuc(say) {
  console.log('Hello, ' + say + '!');
}
fuc('World'); // Hello, World!

πŸ’¬ λ¬Έμžμ—΄ μ‘°ν•© μ‹œ ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄ μ‚¬μš©

⚠ ' (Single quote) λŒ€μ‹ μ— ` (Grave accent)λ₯Ό μ‚¬μš©
function fuc(say) {
  console.log(`Hello, ${say}!`);
}
fuc('World'); // Hello, World!

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

πŸ’¬ function ν‚€μ›Œλ“œ λŒ€μ‹  '=>' 문자λ₯Ό μ‚¬μš©

πŸ’¬ ν™”μ‚΄ν‘œμ˜ μ’ŒμΈ‘μ—λŠ” ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°, ν™”μ‚΄ν‘œμ˜ μš°μΈ‘μ—λŠ” μ½”λ“œ 블둝

const add = (a, b) => {
  return a + b;
};

console.log(add(1, 2));  // 3

// λ°”λ‘œ 리턴할 경우
const add = (a, b) =>  a + b;

πŸ’‘ function ν•¨μˆ˜ vs ν™”μ‚΄ν‘œ ν•¨μˆ˜

πŸ’¬ 각자 ν•¨μˆ˜μ—μ„œ κ°€λ₯΄ν‚€λŠ” thisκ°€ μ„œλ‘œ 닀름

πŸ“ 객체

πŸ’‘ μ„ μ–Έ

πŸ’¬ { ν‚€ : κ°’ }

πŸ’¬ λ³€/μƒμˆ˜ μ‚¬μš© μ‹œ, ν•˜λ‚˜μ˜ 이름에 μ—¬λŸ¬ μ’…λ₯˜μ˜ 값을 넣을 수 있음

const cat = {
  name: '삼색이',  // ν‚€ : name, κ°’ : '삼색이' 
  age: 3         // ν‚€ : age , κ°’ : 3
};

console.log(cat.name);  // 삼색이
console.log(cat.age);   // 3
const stringex = {
  'flowers in bloom': true  // ν‚€ : flowers in bloom, κ°’ : true
};
⚠ 킀에 ν•΄λ‹Ήν•˜λŠ” 뢀뢄은 곡백이 μ—†μ–΄μ•Ό 함. ν•„μš” μ‹œ, λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄λ‘œ μž…λ ₯
const ironMan = {
  name: 'ν† λ‹ˆ μŠ€νƒ€ν¬',
  age: 'λ‘œλ²„νŠΈ λ‹€μš°λ‹ˆ μ£Όλ‹ˆμ–΄',
  alias: '아이언맨'
};

const captainAmerica = {
  name: 'μŠ€ν‹°λΈ λ‘œμ €μŠ€',
  actor: '크리슀 μ—λ°˜μŠ€',
  alias: 'μΊ‘ν‹΄ 아메리카'
};

console.log(ironMan);
// Object {}
console.log(captainAmerica);

πŸ’‘ 객체λ₯Ό νŒŒλΌλ―Έν„°λ‘œ λ°›κΈ°

...

function print(hero) {
  const text = `${hero.alias}(${hero.name}) 역할을 맑은 λ°°μš°λŠ” ${
    hero.actor
  } μž…λ‹ˆλ‹€.`;
  console.log(text);
}

print(ironMan);
print(captainAmerica);

πŸ’‘ 객체 비ꡬ쑰화 ν• λ‹Ή

...

function print(hero) {
  const { alias, name, actor } = hero; // κ°μ²΄μ—μ„œ 값을 μΆ”μΆœν•˜μ—¬ μƒˆλ‘œμš΄ μƒμˆ˜λ‘œ μ„ μ–Έ
  const text = `${alias}(${name}) 역할을 맑은 λ°°μš°λŠ” ${actor} μž…λ‹ˆλ‹€.`;
  console.log(text);
}

print(ironMan);
print(captainAmerica);

πŸ’‘ 객체λ₯Ό νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„ 비ꡬ쑰화 ν• λ‹Ή

...

function print({ alias, name, actor }) {
  const text = `${alias}(${name}) 역할을 맑은 λ°°μš°λŠ” ${actor} μž…λ‹ˆλ‹€.`;
  console.log(text);
}

print(ironMan);
print(captainAmerica);

πŸ’‘ 객체 λ‚΄ ν•¨μˆ˜ μ‚¬μš©

πŸ’¬ this : μžμ‹ μ΄ μ†ν•΄μžˆλŠ” 객체

πŸ’¬ ν•¨μˆ˜ μ„ μ–Έ μ‹œ 이름이 없어도 됨

⚠ 객체 λ‚΄ ν•¨μˆ˜ μ‚¬μš© μ‹œ, ν™”μ‚΄ν‘œ ν•¨μˆ˜ μ„ μ–Έ μ‚¬μš© X
const cat = {
  name: '삼색이',
  sound: 'μ•Όμ˜Ή',
  name: function name() {
    console.log(this.name);
  }
  say: function() {  // 이름 μƒλž΅
    console.log(this.sound);
  }
};

cat.name(); // 삼색이
cat.say();  // μ•Όμ˜Ή

πŸ’‘ Getter ν•¨μˆ˜μ™€ Setter ν•¨μˆ˜

πŸ’¬ νŠΉμ • 값을 λ°”κΎΈκ±°λ‚˜, μ‘°νšŒν•  λ•Œ μ›ν•˜λŠ” μ½”λ“œ μ‹€ν–‰ κ°€λŠ₯

πŸ’‘ Getter ν•¨μˆ˜

πŸ’¬ get ν‚€μ›Œλ“œ

πŸ’¬ νŠΉμ • 값을 쑰회 μ‹œ, μ„€μ •ν•œ ν•¨μˆ˜λ‘œ μ—°μ‚°λœ κ°’ λ°˜ν™˜

const numbers = {
  a: 1,
  b: 2,
  get sum() {  // Getter ν•¨μˆ˜
    console.log('sum ν•¨μˆ˜ μ‹€ν–‰');
    return this.a + this.b;
  }
};

console.log(numbers.sum);   // sum ν•¨μˆ˜ μ‹€ν–‰     3
numbers.b = 5;
console.log(numbers.sum);   // sum ν•¨μˆ˜ μ‹€ν–‰     6
numbers.sum()을 ν•œ 것이 μ•„λ‹ˆλΌ number.sum을 μ‘°νšŒν–ˆμ„ 뿐인데, ν•¨μˆ˜ μ‹€ν–‰ 및 κ²°κ³Όκ°’ 좜λ ₯

πŸ’‘ Setter ν•¨μˆ˜

πŸ’¬ set ν‚€μ›Œλ“œ

const numbers = {
  _a: 1,
  _b: 2,
  sum: 3,
  calculate() {
    console.log('calculate ν•¨μˆ˜ μ‹€ν–‰');
    this.sum = this._a + this._b; 
    // 바뀐, a κ°’κ³Ό b 값을 λ”ν•˜μ—¬ sum κ°’ λ³€κ²½ 
  },
  get a() {   // Getter ν•¨μˆ˜
    return this._a;
  },
  get b() {
    return this._b;
  },
  set a(value) {   // Setter ν•¨μˆ˜
    console.log('a λ³€κ²½'); 
    this._a = value;   // a κ°’ λ³€κ²½
    this.calculate();  // calculate ν•¨μˆ˜ 호좜
  },
  set b(value) {
    console.log('b λ³€κ²½');
    this._b = value;
    this.calculate();
  }
};

console.log(numbers.sum);  // 3
numbers.a = 5;             // a λ³€κ²½	   calculate ν•¨μˆ˜ μ‹€ν–‰
numbers.b = 7;             // b λ³€κ²½	   calculate ν•¨μˆ˜ μ‹€ν–‰
numbers.a = 9;             // a λ³€κ²½	   calculate ν•¨μˆ˜ μ‹€ν–‰
console.log(numbers.sum);  // 16
numbers.a = 5 와 같이 값을 μ„€μ •ν–ˆμ„ μ‹œ, 5 λ₯Ό ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„μ˜΄
이전 μ½”λ“œμ—μ„œλŠ” numbers.sum 이 쑰회 될 λ•Œλ§ˆλ‹€ λ§μ…ˆμ΄ μ΄λ£¨μ–΄μ‘Œμ§€λ§Œ, 이 μ½”λ“œλŠ” a λ˜λŠ” b 값이 λ°”λ€” λ•Œλ§ˆλ‹€ sum 값을 μ—°μ‚°

Reference

λ²¨λ‘œνΌνŠΈμ™€ ν•¨κ»˜ν•˜λŠ” λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ

profile
κ³΅λΆ€ν•œ κ±° μ˜¬λ €μš” :)

0개의 λŒ“κΈ€