[JAYโŒจ๏ธJS] ๊ฐ€๋…์„ฑ์„ ๋†’์ด์ž! if๋ฌธ์„ ๋Œ€์ฒดํ•˜๋Š” ์กฐ๊ฑด๋ฌธ ์ž‘์„ฑ ๋Œ€์•ˆ 3๊ฐ€์ง€.

2023. 5. 14. 22:47ใ†javascript

๋ฐ˜์‘ํ˜•

[JAYโŒจ๏ธJS] ๊ฐ€๋…์„ฑ์„ ๋†’์ด์ž! if๋ฌธ์„ ๋Œ€์ฒดํ•˜๋Š” ์กฐ๊ฑด๋ฌธ ์ž‘์„ฑ ํŒจํ„ด 4๊ฐ€์ง€ ์ œ์•ˆ

 โš ๏ธ  ์ผ๋ฐ˜์ ์ธ ์กฐ๊ฑด๋ถ€ ๋กœ์ง์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” if๋ฌธ์„ ๋‹ค๋ฅธ ์ž‘์„ฑ ํŒจํ„ด์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ์ด์œ ?
  • if๋ฌธ ์กฐ๊ฑด์ด ํ•œ ๋ฒˆ์— ๋„ˆ๋ฌด ๋งŽ์€ ์š”์†Œ๋ฅผ ๋น„๊ตํ•  ๊ฒฝ์šฐ ์ค‘์ฒฉ(nested) ์กฐ๊ฑด์ด ๋งŽ์•„์ง€๋ฏ€๋กœ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
  • ์กฐ๊ฑด์‹์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๊ณ  ๋น„ํšจ์œจ์ ์ด๋‹ค.
  • ํŠน์ • ๋ถ€๋ถ„์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด ๋ชจ๋“  ์กฐ๊ฑด์„ ์‚ดํŽด๋ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค.
  • ์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ if, else ๋ฌธ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด๋ฌธ์„ ๋‚จ๋ฐœํ•˜๋ฉด ๊ฐ€๋…์„ฑ์„ ํ•ด์น˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค. 
    ์•„๋ž˜์— ์ด์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์•ˆ์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.
if (user) {
    if (user.accessLevel) {
        if (user.accessLevel === 'admin') {
            console.log("๊ด€๋ฆฌ์ž๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”.");
        } else if (user.accessLevel === 'vip') {
            console.log("VIP ํšŒ์›๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”.");
        } else {
            console.log("์ผ๋ฐ˜ํšŒ์›์€ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
        }
    } else {
        console.log("ํšŒ์›๊ฐ€์ž… ๋Œ€๊ธฐ ์ค‘์ž…๋‹ˆ๋‹ค.");
    }
} else {
    console.log("๊ฐ€์ž… ํ›„ ์ด์šฉํ•˜์„ธ์š”.");
}

 

 

 

 1๏ธโƒฃ ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž
  • ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 'if' ์กฐ๊ฑด๋ฌธ ๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•ด์ง€๋ฉฐ ์ฝ๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.
  • ์—ฌ๋Ÿฌ ๋ฒˆ ์ค‘์ฒฉ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ๋กœ์ง์—์„œ๋Š” ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ์กฐ๊ฑด์ผ ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ์กฐ๊ฑด๋ฌธ ? ์กฐ๊ฑด๋ฌธ์ด true์ผ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ : false์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
let accessStatus = user && user.accessLevel 
    ? (user.accessLevel === 'admin' 
        ? "๊ด€๋ฆฌ์ž๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”." 
        : (user.accessLevel === 'vip' 
            ? "VIP ํšŒ์›๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”." 
            : "์ผ๋ฐ˜ํšŒ์›์€ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค")
        ) 
    : "๊ฐ€์ž… ํ›„ ์ด์šฉํ•˜์„ธ์š”.";

 

 

 

 2๏ธโƒฃ '&&', '||' ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•œ ๋‹จ๋ฝ ํšŒ๋กœ ํ‰๊ฐ€
  • ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ•˜๋Š” && (๋…ผ๋ฆฌ๊ณฑ)|| (๋…ผ๋ฆฌํ•ฉ) ์—ฐ์‚ฐ์ž๋Š” ํ‰๊ฐ€ ์ค‘๊ฐ„์— ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฐ’์„ ๋ฐ”๋กœ return ํ•œ๋‹ค.
  • ์ด๋Ÿฐ ์ˆœ์„œ๋ณ„ return ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•ด์„œ ๋’ค์— ์œ„์น˜ํ•œ ํ”ผ์—ฐ์‚ฐ์ž๋Š” ๋ณผ ํ•„์š” ์—†์ด ์—ฐ์‚ฐ์„ ๋๋‚ด๋ฒ„๋ฆฌ๋Š” ๋ฌธ๋ฒ•์„
    short circuit evaluation, ๋‹จ๋ฝํšŒ๋กœํ‰๊ฐ€(๋‹จ์ถ•ํ‰๊ฐ€)๋ผ๊ณ  ํ•œ๋‹ค.
  • &&(๋…ผ๋ฆฌ๊ณฑ) ์—ฐ์‚ฐ์ž๋Š” ๋น„๊ตํ•˜๋Š” ๊ฐ’์ด ๋ชจ๋‘ true์—ฌ์•ผ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ ๊ฐ’์ด false๋ผ๋ฉด ๋‹ค์Œ ํ”ผ์—ฐ์‚ฐ์ž๋Š” ๋ฌด์กฐ๊ฑด false.
    (&&๋กœ ์—ฐ๊ฒฐ๋œ ๊ฐ’๋“ค์€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š” falsy ๊ฐ’์„ ์ฐพ์•„์ฃผ๊ณ  ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ฉด ๋งˆ์ง€๋ง‰๊ฐ’์„ ๋‚จ๊ฒจ์ค€๋‹ค๊ณ  ์™ธ์šฐ๋ฉด ํŽธํ•˜๋‹ค!)
  • ||(๋…ผ๋ฆฌํ•ฉ) ์—ฐ์‚ฐ์ž๋Š” ๋น„๊ตํ•˜๋Š” ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋งŒ true์—ฌ๋„ ๋ฌด์กฐ๊ฑด true์ด๋ฏ€๋กœ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ”๋กœ returnํ•œ๋‹ค.
  • if, else ๋ฌธ๊ณผ &&, || ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•œ ๋‹จ๋ฝํšŒ๋กœํ‰๊ฐ€์™€์˜ ์ฝ”๋“œ ๋น„๊ต. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๋‹ค.

[if, else] ๋ฌธ๊ณผ [&&, ||] ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•œ ๋‹จ๋ฝํšŒ๋กœํ‰๊ฐ€์™€์˜ ์ฝ”๋“œ ๋น„๊ต. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๋‹ค.

 

1. &&(๋…ผ๋ฆฌ๊ณฑ) ์—ฐ์‚ฐ์ž์˜ ๋‹จ๋ฝ ํšŒ๋กœ ํ‰๊ฐ€
true && false    // false (์™ผ์ชฝ์ด true๋ฉด, ์˜ค๋ฅธ์ชฝ๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๊ณ  false๋ฅผ ๋ฐ˜ํ™˜)
true && true.    // true. (์™ผ์ชฝ์ด true๋ฉด, ์˜ค๋ฅธ์ชฝ๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜)
false && true;   // false (์˜ค๋ฅธ์ชฝ์€ ๋ณผ๊ฒƒ๋„ ์—†์ด, ์™ผ์ชฝ์˜ false๋ฅผ ๋ฐ˜ํ™˜)
false && false;  // false (์˜ค๋ฅธ์ชฝ์€ ๋ณผ๊ฒƒ๋„ ์—†์ด, ์™ผ์ชฝ์˜ false๋ฅผ ๋ฐ˜ํ™˜)


2. ||(๋…ผ๋ฆฌํ•ฉ) ์—ฐ์‚ฐ์ž์˜ ๋‹จ๋ฝ ํšŒ๋กœ ํ‰๊ฐ€
true  || false;  // true(์˜ค๋ฅธ์ชฝ์˜ false๋Š” ๋ณผ ๊ฒƒ๋„ ์—†์ด, ์™ผ์ชฝ์˜ true ๋ฐ˜ํ™˜)
true  || true;   // true(์˜ค๋ฅธ์ชฝ์˜ true๋Š” ๋ณผ ๊ฒƒ๋„ ์—†์ด, ์™ผ์ชฝ์˜ true ๋ฐ˜ํ™˜)
false || true;   // true(์™ผ์ชฝ์˜ false๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ์˜ true ๋ฐ˜ํ™˜ )
false || false;  // false(์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ๊นŒ์ง€ false์ž„์„ ํƒ์ƒ‰ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ํƒ์ƒ‰ํ•œ ์˜ค๋ฅธ์ชฝ false ๋ฐ˜ํ™˜)
// ํšŒ์›์ด๋ฉด์„œ ํšŒ์›๋“ฑ๊ธ‰์„ ์ถฉ์กฑํ•œ๋‹ค๋ฉด ์•ˆ๋‚ด ๋ฌธ๊ตฌ ํ‘œ์‹œ
if (user && user.accessLevel) {
    console.log("์—ด๋žŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
} else {
    console.log("์ผ๋ฐ˜ ํšŒ์›์€ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
}

// ํšŒ์›๋“ฑ๊ธ‰์ด ์žˆ๋‹ค๋ฉด ํšŒ์› ๋“ฑ๊ธ‰ํ‘œ์‹œ, ์•„๋‹ˆ๋ผ๋ฉด ์•ˆ๋‚ด ๋ฌธ๊ตฌ ํ‘œ์‹œ
let accessLevel = user.accessLevel || "๊ฐ€์ž… ํ›„ ์ด์šฉํ•˜์„ธ์š”.";
console.log(accessLevel);

 

 

 

3๏ธโƒฃ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด
  • ๊ฐ์ฒด์˜ key ๊ฐ’์— ์กฐ๊ฑด์„ ๋„ฃ๊ณ  value ๊ฐ’์€ ์กฐ๊ฑด์ด ์ดํ–‰๋  ๋•Œ ๋ณด์—ฌ์ค„ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๊ฐ€๋…์„ฑ์„ ๋†’์ธ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์กฐ๊ฑด๊ฐ’์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋‚˜, ๋‹จ๋ฝํšŒ๋กœ ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ์กฐ๊ฑด์‹์„ ์‹คํ–‰ํ•œ๋‹ค.
const accessLevels = {
    admin: "๊ด€๋ฆฌ์ž๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”.",
    vip: "VIPํšŒ์›๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”.",
    notDefined: "๊ฐ€์ž… ํ›„ ์ด์šฉํ•˜์„ธ์š”."
};

let accessStatus = user?.accessLevel 
    ? (accessLevels[user.accessLevel] 
        ? accessLevels[user.accessLevel] 
        : "์ผ๋ฐ˜ํšŒ์›์€ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.") 
    : accessLevels.notDefined;

console.log(accessStatus);

 

 

๐Ÿ™‹๐Ÿป‍โ™€๏ธ ์š”์•ฝ!
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” if ์กฐ๊ฑด๋ฌธ์„ ๋Œ€์ฒดํ•ด์„œ ๋” ๋ช…ํ™•ํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ์ด ์กด์žฌํ•œ๋‹ค.
  • ๋ณต์žกํ•œ ๋…ผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ๊นŠ๊ฒŒ ์ค‘์ฒฉ๋œ if๋ฌธ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ๊ฐ„๋‹จํ•œ ์กฐ๊ฑด์‹์„ ์‹คํ–‰ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.
  • ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•œ ๋‹จ๋ฝํšŒ๋กœ ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ  ํ•œ ์ค„๋กœ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์ด์šฉํ•˜๋ฉด ์กฐ๊ฑด ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์œ ์ง€๋ณด์ˆ˜์— ์ ํ•ฉํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•