Skip to content

Latest commit

ย 

History

History
447 lines (346 loc) ยท 16.7 KB

operator.md

File metadata and controls

447 lines (346 loc) ยท 16.7 KB

ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‘œํ˜„์‹์„ ์‚ฐ์ˆ , ํ• ๋‹น, ๋น„๊ต, ๋…ผ๋ฆฌ, ํƒ€์ž…, ์ง€์ˆ˜ ์—ฐ์‚ฐ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ๋งŒ๋“œ๋Š” ํ–‰์œ„์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ํ•ต์‹ฌ์ด๋‹ˆ ์ž˜ ์•Œ์•„๋‘˜๊นŒ์š”?

์—ฐ์‚ฐ์ž(Operator)

์—ฐ์ƒ์˜ ๋Œ€์ƒ์€ ํ”ผ์—ฐ์‚ฐ์ž(operand)์ด๋ฉฐ, ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐํ•ด ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“œ๋Š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜๋ณ„๋กœ ์•Œ์•„๋‘์–ด์•ผ ํ•  ๋‚ด์šฉ์„ ์งš์–ด๋ณด์ฃ .

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž(Arithmetic Operator)

์ˆ˜ํ•™์  ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ˆซ์ž ๊ฐ’์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ์ดํ•ญ, ๋‹จํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.

  • ์ดํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ(side effect)๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ค ๋ฟ์ด์ฃ .

    const a = 5;
    const b = 2;
    console.log(5 + 2); // ๋ง์…ˆ, 7 ๋ฐ˜ํ™˜
    console.log(5 - 2); // ๋บ„์…ˆ, 3 ๋ฐ˜ํ™˜
    console.log(5 * 2); // ๊ณฑ์…ˆ, 10 ๋ฐ˜ํ™˜
    console.log(5 / 2); // ๋ชซ ์—ฐ์‚ฐ, 2.5 ๋ฐ˜ํ™˜
    console.log(5 % 2); // ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ, 1 ๋ฐ˜ํ™˜
  • ๋‹จํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž ํ•œ ๊ฐœ๋ฅผ ์‚ฐ์ˆ  ์—ฐ์‚ฐํ•˜์—ฌ ์ˆซ์ž ๊ฐ’์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    /*
     * ++ : ์ฆ๊ฐ€, ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€์ˆ˜ํšจ๊ณผ(์•”๋ฌต์  ํ• ๋‹น)๊ฐ€ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.
     * -- : ๊ฐ์†Œ, ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€์ˆ˜ํšจ๊ณผ(์•”๋ฌต์  ํ• ๋‹น)๊ฐ€ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.
     */
    
    // ์„ ํ• ๋‹น, ํ›„์ฆ๊ฐ€(postfix increment operator)
    let a = 0, result = 0;
    result = x++;
    console.log(result, x); // 0 1
    
    // ์„ ์ฆ๊ฐ€, ํ›„ํ• ๋‹น(prefix increment operator)
    x = 0, result;
    result = ++x; 
    console.log(result, x); // 1 1
    
    // ์„ ํ• ๋‹น, ํ›„๊ฐ์†Œ(postfix decrement operator)
    x = 0, result;
    result = x--;
    console.log(result, x); // 0 -1
    
    // ์„ ๊ฐ์†Œ, ํ›„ํ• ๋‹น(prefix decrement operator)
    x = 0, result;
    result = --x;
    console.log(result, x); // -1 -1
    
    /*
     * + : ๋‹ค๋ฅธ ํƒ€์ž…์ด๋ผ๋ฉด ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
     * - : ์ˆซ์ž ํƒ€์ž…์—๋Š” ๋ถ€ํ˜ธ ๋ฐ˜์ „, ๋‹ค๋ฅธ ํƒ€์ž…์—๋Š” ๋ถ€ํ˜ธ๋ฅผ ๋ฐ˜์ „ํ•œ ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
     */
    
    // (+) ์ˆซ์ž ํƒ€์ž…์— ์‚ฌ์šฉ
    let a = 10;
    console.log(+a);    // 10
    console.log(+(-a)); // -10
    
    // (+) ๋ฌธ์ž์—ด ํƒ€์ž…์— ์‚ฌ์šฉ
    let b = '10';
    console.log(+10);   // 10
    b = 'Hi';
    console.log(+b);    // NaN
    
    // (+) ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์— ์‚ฌ์šฉ
    b = true;
    console.log(+b);    // 1
    b = false;
    console.log(+b);    // 0
    
    // (-) ์ˆซ์ž ํƒ€์ž…์— ์‚ฌ์šฉ
    a = 10;
    console.log(-a);    // -10
    console.log(-(-a)); // 10
    
    // (-) ๋ฌธ์ž์—ด ํƒ€์ž…์— ์‚ฌ์šฉ
    b = '10';
    console.log(-10);   // -10
    b = 'Hi';
    console.log(-b);    // NaN
    
    // (-) ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์— ์‚ฌ์šฉ
    b = true;
    console.log(-b);    // -1
    b = false;
    console.log(-b);    // -0, 0์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜
  • ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž : + ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ๋ฌธ์ž์—ด์ด๋ผ๋ฉด ๋ฌธ์žฅ ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    let a = '1';
    console.log(a + 2); // '12'
    console.log(2 + a); // '21'
    
    a = 1;
    console.log(a + true);  // 2, 1๋กœ ํƒ€์ž… ๋ณ€ํ™˜
    console.log(a + false); // 1, 0์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜
    
    console.log(a + null);  // 1, 0์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜
    
    console.log(a + undefined); // NaN, ํƒ€์ž… ๋ณ€ํ™˜ X
    • ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์–ด๋–ป๊ฒŒ ์•”๋ฌต์ ์œผ๋กœ ํƒ€์ž…์„ ์ž๋™ ๋ณ€ํ™˜ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ด๋ฅผ ๊ฐ•์ œ ๋ณ€ํ™˜(Type Coercion)์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ์˜ ๋‹จํ•ญ ์—ฐ์‚ฐ์ž๋„ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

ํ• ๋‹น ์—ฐ์‚ฐ์ž(Assignment Operator)

ํ”ผ์—ฐ์‚ฐ์ž์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์ขŒํ•ญ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

a = 0 ์ฒ˜๋Ÿผ ์ขŒํ•ญ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ํ• ๋‹น ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์กด์žฌํ•˜๊ฒ ์ฃ ? ์ข…๋ฅ˜๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

  • ์ˆซ์ž ํƒ€์ž…์— ๋Œ€ํ•œ ํ• ๋‹น : ์‚ฐ์ˆ  ์—ฐ์‚ฐ

    let a;
    a = 10;
    a += 10;
    a -= 10;
    a *= 10;
    a /= 10;
    a %= 10;
  • ๋ฌธ์ž์—ด ํƒ€์ž…์— ๋Œ€ํ•œ ํ• ๋‹น : ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ

    let a = 'S';
    a += 'tring';

๊ฒฐ๊ณผ๋Š” ์ง์ ‘ ํ™•์ธํ•ด๋ณด์„ธ์š”. ์ดํ•ด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

ํ• ๋‹น ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ ํ• ๋‹น๋ฌธ์— ๊ฐ€์žฅ ํ•„์š”ํ•œ ๋‚ด์šฉ์€ ํ‘œํ˜„์‹๊ณผ ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ• ๋‹น๋ฌธ์€ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ํ‘œํ˜„์‹์ธ ๋ฌธ์œผ๋กœ ํ• ๋‹น๋œ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€ ๋˜๋Š” ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ํŠน์ง•์„ ์ด์šฉํ•ด์„œ ์•„๋ž˜๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฐ์‡„ ํ• ๋‹นํ•˜๊ธฐ
    let a, b, c;
    a = b = c = 10;
    console.log(a, b, c); // 10 10 10

๋น„๊ต ์—ฐ์‚ฐ์ž(Comparison Operator)

์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ œ์–ด๋ฌธ์ด๋‚˜ ์กฐ๊ฑด์‹์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ข…๋ฅ˜๋ฅผ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

  • ๋™๋“ฑ/์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž

    • ๋™๋“ฑ ๋น„๊ต : ๊ฐ’๋งŒ์„ ๋น„๊ตํ•˜๋ฉฐ, == ๋Š” ๊ธ์ •, != ๋Š” ๋ถ€์ •์ž…๋‹ˆ๋‹ค.
      • x == y, x != y
      • ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์ขŒํ•ญ, ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์ „์— ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์„ ํ†ตํ•ด ํƒ€์ž…์„ ์ผ์น˜์‹œํ‚ค๊ณ  ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, '1' == 1์ด true๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ, ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ๋Š” ์ตœ๋Œ€ํ•œ ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ผ์น˜ ๋น„๊ต : ๊ฐ’๊ณผ ํƒ€์ž…์„ ๋น„๊ตํ•˜๋ฉฐ === ๋Š” ๊ธ์ •, !== ๋Š” ๋ถ€์ •์ž…๋‹ˆ๋‹ค.
      • x === y, x !== y
      • ์ผ์น˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์ขŒํ•ญ, ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ’๊ณผ ํƒ€์ž…์ด ๊ฐ™์„ ๋•Œ์—๋งŒ ๋น„๊ต์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        • ์˜ˆ์™ธ์ ์œผ๋กœ NaN === NaN์€ false๋กœ์„œ NaN์˜ ํŠน์„ฑ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ž„์„ ์•Œ์•„๋‘์„ธ์š”.
      • ES6์—์„œ ์ถ”๊ฐ€๋œ Object.is ๋ฉ”์„œ๋“œ๋Š” ์ •ํ™•ํ•œ ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        0 == -0;              // true
        0 === -0;             // true
        Object.is(0, -0);     // false
        
        NaN === NaN;          // false
        Object.is(NaN, NaN);  // true
  • ๋Œ€์†Œ ๊ด€๊ณ„ ๋น„๊ต ์—ฐ์‚ฐ์ž : ์ขŒํ•ญ๊ณผ ์šฐํ•ญ์„ ๊ธฐ์ค€์œผ๋กœ ์ด์ƒ(>=), ์ดํ•˜(<=), ์ดˆ๊ณผ(>), ๋ฏธ๋งŒ(<)์„ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.


์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž(Ternary Operator)

์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฐ˜ํ™˜ํ•  ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์œ ์ผํ•œ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

function isString(a){
  // ์กฐ๊ฑด์‹์œผ๋กœ ํ’€๋ฉด
  if(typeof a === 'string') return true;
  else return false;
  // ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋กœ ํ’€๋ฉด
  return typeof a === 'string' ? true : false;
}

์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ํ‘œํ˜„์‹์€ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์‹์ธ ๋ฌธ์ด๋ฏ€๋กœ, ๊ฐ’์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

์ขŒํ•ญ๊ณผ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋ถ€์ • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ ์šฐํ•ญ์ด ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

let a = true;
console.log(a && true);
console.log(a || false);
console.log(!a);
  • ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž…์ด ์•„๋‹ ๊ฒฝ์šฐ์˜ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์œผ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์„ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์•Œ์•„๋‘์„ธ์š”.

    let a = 0;
    console.log(!a);  // true
    a = 'Hi';
    console.log(!a);  // false
  • ๋“œ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ์„ ์ข€ ๋” ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ๋ง์ด์ฃ .

    !(a || b) === (!a && !b)
    !(a && b) === (!a || !b)

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์—์„œ ๋‹ค๋ฃจ๊ธฐ ํž˜๋“  ๋‹จ์ถ• ํ‰๊ฐ€๋ผ๋Š” ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•ญ๋ชฉ์€ ์•„๋ž˜์—์„œ ์ž์„ธํžˆ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.


์‰ผํ‘œ ์—ฐ์‚ฐ์ž(Comma Operator)

์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ํ‰๊ฐ€ํ•œ ํ›„ ๋งˆ์ง€๋ง‰ ํ”ผ์—ฐ์‚ฐ์ž ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let a, b, c;
a = 1, b = 2, c = 3;              // 3
console.log(a = 4, b = 5, c = 6); // 4 5 6

๊ทธ๋ฃน ์—ฐ์‚ฐ์ž(Group Operator)

์†Œ๊ด„ํ˜ธ(())๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ฐ์‹ธ ์—ฐ์‚ฐ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์žฅ ๋†’๊ฒŒ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


typeof ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

typeof ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฐ๊ณผ๋Š” ์ด 7๊ฐ€์ง€('string', 'number', 'boolean', 'undefined', 'symbol', 'object', 'function')์ž…๋‹ˆ๋‹ค.

์ฃผ์˜์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ฃ .

  1. null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, null์„ ๋น„๊ตํ•˜๋ฉด 'object'๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์ผ์น˜ ์—ฐ์‚ฐ์ž๋กœ null ํƒ€์ž…์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
let a = null;
console.log(typeof a === null); // false
console.log(a === null);        // true
  1. ์„ ์–ธํ•˜์ง€ ์•Š์€ ์‹๋ณ„์ž๋ฅผ typeof๋กœ ์—ฐ์‚ฐํ•˜๋ฉด ReferenceError๊ฐ€ ์•„๋‹Œ undefined๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
typeof a; // undefined

์ง€์ˆ˜ ์—ฐ์‚ฐ์ž(Exponentiation Operator)

ES7์— ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฐ‘(base), ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ง€์ˆ˜(exponent)๋กœ ๊ฑฐ๋“ญ ์ œ๊ณฑํ•˜์—ฌ ์ˆซ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์—ฐ์‚ฐ์ž๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž ์ค‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์œผ๋ฉฐ, ํ• ๋‹น ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„์ž… ์ด์ „ : Math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ pow ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

    Math.pow(2, 2); // 4
    Math.pow(2, 3); // 8
  • ๋„์ž… ์ดํ›„ : **๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    2 ** 2; // 4
    2 ** 3; // 8
    
    // ์Œ์ˆ˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์‹œ ๊ทธ๋ฃน ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    -5 ** 2;    // SyntaxError
    (-5) ** 2;  // 25

๊ทธ ์™ธ, ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋Š” ์ดํ•ด์™€ ์•”๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ฐธ์กฐ๋ฅผ ์ž์ฃผ ํ•ด๋ณด์„ธ์š”. ์•„๋ž˜์— ๋งํฌ๋ฅผ ์ค€๋น„ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ Link




๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ถ• ํ‰๊ฐ€์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ : ์ด ๋‚ด์šฉ์€ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฏ€๋กœ, ํƒ€์ž… ๋ณ€ํ™˜์„ ์ดํ•ดํ•˜์‹  ๋‹ค์Œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ง€์‹์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋Š๋ผ์‹œ๋ฉด ์—ฌ๊ธฐ์—์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฝ์–ด๋ณผ๊นŒ์š”?


๋‹จ์ถ• ํ‰๊ฐ€(Short-circuit Evaluation)

๋…ผ๋ฆฌ๊ณฑ(&&)๊ณผ ๋…ผ๋ฆฌํ•ฉ(||) ๋“ฑ์˜ ์—ฐ์‚ฐ์ž๋กœ ํ‘œํ˜„์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋‹จ์ถ•ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌํ•ฉ, ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ž ํ‘œํ˜„์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ๋‚˜ ๋‘ ๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์–ด๋Š ํ•œ ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋  ๋ฟ์ด์ฃ .

  • ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ž๋Š” ์ขŒํ•ญ์—์„œ ์šฐํ•ญ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋ฉฐ, ๋‘ ๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ true์ผ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ์ž๋„ ์ขŒํ•ญ์—์„œ ์šฐํ•ญ์œผ๋กœ ํ‰๊ฐ€ํ•˜์ง€๋งŒ, ํ•˜๋‚˜๋งŒ true์ผ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋‹จ์ถ• ํ‰๊ฐ€๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํžˆ ๋งํ•˜์ž๋ฉด, ํ‘œํ˜„์‹์„ ํ‰๊ฐ€ํ•˜๋Š” ๋„์ค‘ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ํ™•์ •๋˜๋ฉด ๋‚˜๋จธ์ง€ ํ‰๊ฐ€ ๊ณผ์ •์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”.

ํ‘œํ˜„์‹ ๊ฒฐ๊ณผ
true || anything true
false || anything anything
true && anything anything
false && anything false

์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณผ๊นŒ์š”?

  • if๋ฌธ์„ ๋‹จ์ถ• ํ‰๊ฐ€๋กœ ๋Œ€์ฒดํ•˜๊ธฐ

    // ๋…ผ๋ฆฌ๊ณฑ
    let complete = true;
    let message = '';
    // if๋ฌธ :
    if(complete) message = '์™„๋ฃŒ';    // 1๋ฒˆ
    // ๋‹จ์ถ• ํ‰๊ฐ€ : 
    message = complete && '์™„๋ฃŒ';     // 2๋ฒˆ
    
    // ๋…ผ๋ฆฌํ•ฉ
    complete = false;
    message = '';
    // if๋ฌธ :
    if(!complete) message = '๋ฏธ์™„๋ฃŒ'  // 1๋ฒˆ
    // ๋‹จ์ถ• ํ‰๊ฐ€ : 
    message = !complete || '๋ฏธ์™„๋ฃŒ';  // 2๋ฒˆ
    • 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด์˜ null, undefined ํ™•์ธ๊ณผ ํ”„๋กœํผํ‹ฐ ์ฐธ์กฐ๋ฅผ ๋‹จ์ถ• ํ‰๊ฐ€๋กœ ๋Œ€์ฒดํ•˜๊ธฐ

    const elem = null;
    
    // ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ์ง์ ‘ ์ฐธ์กฐ :
    console.log(elem.value);          // 1๋ฒˆ
    // ๊ฒฐ๊ณผ : TypeError: Cannot read property 'value' of null
    
    // ๋‹จ์ถ• ํ‰๊ฐ€ : 
    console.log(elem && elem.value);  // 2๋ฒˆ
    // ๊ฒฐ๊ณผ : null
    • 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•˜์ง€๋งŒ, 2๋ฒˆ์€ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ถ• ํ‰๊ฐ€๋กœ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ

    • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜์— undefined๊ฐ€ ํ• ๋‹น ๋˜๋Š”๋ฐ, ๋‹จ์ถ• ํ‰๊ฐ€๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      // ES5, 1๋ฒˆ
      function getStringLength(str) {
        str = str || '';
        return str.length;
      }
      
      getStringLength();     // 0
      getStringLength('hi'); // 2
      
      // ES6, 2๋ฒˆ
      function getStringLength(str = '') {
        return str.length;
      }
      
      getStringLength();     // 0
      getStringLength('hi'); // 2
      • 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž(Optional Chaning Operator)

ES11์—์„œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ?.๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ null/undefined์ธ ๊ฒฝ์šฐ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์šฐํ•ญ์˜ ํ”„๋กœํผํ‹ฐ ์ฐธ์กฐ๋ฅผ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•œ ๋‹จ์ถ• ํ‰๊ฐ€์™€๋Š” ๋ญ๊ฐ€ ๋‹ค๋ฅธ์ง€ ๋น„๊ตํ•ด๋ณผ๊นŒ์š”?

// ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ์ฐธ์กฐ
const elem = null;
// ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž :
let value = elem && elem.value;   // null
// ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž : 
value = elem?.value;              // undefined

// ์˜ˆ์™ธ ์ƒํ™ฉ
const str = '';
const length = str && str.length; //  ''
length = str?.length;             // 0
  • ๋…ผ๋ฆฌ๊ณฑ(&&)์€ ํ‰๊ฐ€ ํ›„ ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ˜๋ฉด, ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž(?.)๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜์˜ null/undefined๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ณ  ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์™ธ๋Š” ๋ญ˜๊นŒ์š”? ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ๋Š” ๋ณ€์ˆ˜ str์€ ๋ฌธ์ž์—ด์ž„์—๋„ length ํ”„๋กœํผํ‹ฐ ์ฐธ์กฐ๋ฅผ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์›์‹œ ๊ฐ’์— ๋Œ€ํ•œ ๋ž˜ํผ ๊ฐ์ฒด(Wraper Object)์˜ ํŠน์„ฑ ๋•Œ๋ฌธ์—(๋‚˜์ค‘์— ์ž์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค) Falsy Value๋กœ ํŒ๋‹จํ•˜์—ฌ ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ˜๋ฉด, ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž๋Š” null/undefined๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐํ•ญ์˜ ํ”„๋กœํผํ‹ฐ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž(Nullish Coalescing)

ES11์—์„œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ??๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ null/undefined์ธ ๊ฒฝ์šฐ ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์–ผํ• ๋…ผ๋ฆฌํ•ฉ(||)๊ณผ ๋น„์Šทํ•ด๋ณด์ด๋„ค์š”. ์ž์„ธํžˆ ์•Œ์•„๋ณผ๊นŒ์š”?

// null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž : 
let str = null ?? 'string value'; // 'string value'
// ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : 
str = '' || 'string value';       // 'string value'

// ์˜ˆ์™ธ ์ƒํ™ฉ
str = '' ?? 'string value';       // ''
  • ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌํ•ฉ(||)์€ ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ Falsy Value๋ผ๋ฉด ์šฐํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž๋Š” Falsy Value๊ฐ€ ์•„๋‹Œ null/undefined๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ขŒํ•ญ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.



2021-09-11, karohani์™€ ์Šคํ„ฐ๋”” ์ค‘ ์‹๋ณ„๋œ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค

โœ… ๋™๋“ฑ์„ฑ, ๋™์ผ์„ฑ?

์˜๋ฌธ์ 

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ ์œ ๋… ์ด์ƒํ•˜๊ฒŒ ๋น„๊ตํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ์˜ ==, ===๋Š” ์–ด๋–จ๊นŒ์š”?

์ •๋ฆฌ ๋œ ๋‚ด์šฉ

  • ์šฐ๋ฆฌ๋Š” ๋™๋“ฑ ์—ฐ์‚ฐ์ž(==)์˜ ์˜๋ฏธ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™๋“ฑ์„ฑ(Equality) ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ(equals)์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ผ์น˜ ์—ฐ์‚ฐ์ž(===)๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ๋™์ผ์„ฑ(Identity) ์œผ๋กœ์„œ ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด์ธ ๊ฒƒ(==)์ž…๋‹ˆ๋‹ค.

  • ์ฆ‰, ๋™๋“ฑ์„ฑ์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ €์žฅ๋œ ๊ฐ’์ด ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์ผ์„ฑ์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ์ธ์Šคํ„ด์Šค ์ž์ฒด๊ฐ€ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌ๋ฉด ํ˜ผ๋™์ด ์˜ต๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ์ฃผ์†Œ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ˆ๊นŒ์š”. ์—ฌ๊ธฐ์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค๋ฅธ ์–ธ์–ด์™€์˜ ๋™๋“ฑ/์ผ์น˜๋ฅผ ๋น„๊ตํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ •ํ™•ํžˆ ๊ฐ’๊ณผ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด-์˜ˆ๋ฅผ ๋“ค์–ด Java์˜ ๊ฒฝ์šฐ-๋Š” ๋™์ผํ•œ ํƒ€์ž…๊ณผ ๋™์ผํ•œ ๊ฐ’์ด๋ผ๋ฉด ๋™์ผํ•œ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ ์ฃผ์†Œ(ID)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ฃ !

  • ์ฐธ์กฐ Link