๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐ŸŒˆ Chapter 4 : ์กฐ๊ฑด๋ฌธ์„ ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.

๐ŸŽฏ ๊ฑฐ์ง“ ๊ฐ’์ด ์žˆ๋Š” ์กฐ๊ฑด๋ฌธ์„ ์ถ•์•ฝํ•˜๋ผ.โ€‹

  • ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ถˆ ์ž๋ฃŒํ˜•(boolean type)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์›์‹œ๊ฐ’ true, false์™€ ์ฐธ ๋˜๋Š” ๊ฑฐ์ง“ ๊ฐ’์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์‚ฌ์ด์˜ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋™๋“ฑ์€ ๋‚ด์šฉ์€ ๊ฐ™์ง€๋งŒ ์ž๋ฃŒํ˜•์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ ==์„ ์ด์šฉํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
1 == '1' // true
  • ๋™์ผํ•œ ๊ฐ’ ๋˜๋Š” ์—„๊ฒฉํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์ด๋ž€ ๋‘ ๊ฐ’์ด ์„œ๋กœ ๋™์ผํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž๋ฃŒํ˜•๋„ ๊ฐ™์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
1 === '1' // false
1 === 1 // true
  • ๋นˆ ๋ฌธ์ž์—ด์€ false์™€ ๋™๋“ฑํ•˜๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๋นˆ ๋ฌธ์ž์—ด์€ ๊ฑฐ์ง“ ๊ฐ’์ด๋‹ค.
'' == false; // true
'' === false; // false
  • ๐Ÿ“Œ ๊ฑฐ์ง“ ๊ฐ’์˜ ๋ชฉ๋ก MDN ์ฐธ๊ณ 
  • ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ๋นˆ ๋ฐฐ์—ด ๋˜๋Š” ๋นˆ ๊ฐ์ฒด๋ผ๋„ ํ•ญ์ƒ ์ฐธ๊ฐ’์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด, [].length ๋˜๋Š” Object.keys({}).length์ฒ˜๋Ÿผ 0 ๋˜๋Š” ์ฐธ๊ฐ’์ธ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๊ฑฐ์ง“ ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
  • ๊ฐ€์žฅ ํ”ํ•œ ๋ฌธ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ‰์ธ์„ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด์—์„œ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค.
['a','b'].indexOf('a');
// return 0 => 0์€ false
  • ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ๋Š” Array.includes()๋ฅผ ์‚ฌ์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋˜ํ•œ, ์ •์˜๋˜์ง€ ์•Š์€ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ •์˜๋˜์ง€ ์•Š์€ ํ‚ค์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ฉด undefined์ด๋‹ค.
  • ์ด ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ ๋‹ค๋ฅธ ๊ณณ์— ๊ฐ์ฒด ๋˜๋Š” ๋งต์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
const employee = {
name: 'Eric',
equipmentTraining: true,
};

function listCerts(employee) {
if(employee.equipmentTraining) {
employee.certificates = ['Equipment'];
// ์กฐ์ž‘
delete employee.equipmentTraining;
}
// ...์ƒ๋žต
}

function checkAuthorization() {
if(!employee.equipmentTraining) {
return '๊ธฐ๊ณ„๋ฅผ ์ž‘๋™ํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.';
}
return `๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค! ${employee.name} ๋‹˜`;
}

listCerts(employee);
checkAuthorization(employee); // "๊ธฐ๊ณ„๋ฅผ ์ž‘๋™ํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค."
  • ์œ„ ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ listCerts ํ•จ์ˆ˜์—์„œ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜์˜€๋‹ค.
  • ๊ทธ ํ›„ checkAuthorization์—์„œ ๊ฐ์ฒด์— ๊ฐ’์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
  • ๊ฐ์ฒด์— ํ‚ค๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ , undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (๋งต๋„ ๋™์ผ)
  • ์ฝ”๋“œ๋ฅผ ์ ๊ฒ€ํ•ด ๋ณด๋ฉด ์ง์›์ด ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„์„œ ์กฐ๊ฑด๋ฌธ์„ ํ†ต๊ณผํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์ด๊ฒƒ์€ ์ž˜๋ชป๋˜์—ˆ๋‹ค.
  • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒซ ๋ฒˆ์งธ์ด์ž ์›”๋“ฑํžˆ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋งŒ์•ฝ ๊ทธ๋Ÿด ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด, ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ ์—„๊ฒฉํ•œ ์ผ์น˜(strict equivalency)๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์ด ์žˆ๋Š”์ง€, ์›ํ•˜๋Š” ํ˜•์‹์ธ์ง€ ํ™•์ธํ•œ๋‹ค.
function checkAuthorization() {
if(employee.equipmentTraining !== true) {
return '๊ธฐ๊ณ„๋ฅผ ์ž‘๋™ํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.';
}
return `๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค! ${employee.name} ๋‹˜`;
}

checkAuthorization(employee); // "๊ธฐ๊ณ„๋ฅผ ์ž‘๋™ํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค."

๐ŸŽฏ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋ผ.โ€‹

  • ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ณ€์ˆ˜์˜ ์žฌํ• ๋‹น์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฒŒ๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์€ if/else ๋ฌธ์„ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ๋กœ ์ด์–ด์ง€๊ธฐ๋„ ํ•œ๋‹ค.
  • ๋ธ”๋ก ์œ ํšจ ๋ฒ”์œ„ ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ธ”๋ก ๋ฐ–์—์„œ๋Š” ํ™•์ธ ๊ฒฐ๊ณผ๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค.
if (title === '๊ณผ์žฅ') {
const permissions = ['๊ทผ๋กœ์‹œ๊ฐ„','์ˆ˜๋‹น'];
} else {
const permissions = ['๊ทผ๋กœ์‹œ๊ฐ„'];
}
permissions; // Uncaught ReferenceError: permissions is not defined
  • ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ธ”๋ก ์œ ํšจ ๋ฒ”์œ„ ๋ฐ–์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ var๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ let์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  if/esle ๋ฌธ ๋‚ด๋ถ€์—์„œ ์žฌํ• ๋‹นํ•ด์•ผ ํ•œ๋‹ค.
let permissions;
if (title === '๊ณผ์žฅ') {
permissions = ['๊ทผ๋กœ์‹œ๊ฐ„','์ˆ˜๋‹น'];
} else {
permissions = ['๊ทผ๋กœ์‹œ๊ฐ„'];
}
  • ํ•˜์ง€๋งŒ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์„ ๊ฑฑ์ •ํ•ด์•ผ ํ•˜๊ณ , ์ž ์žฌ์ ์ธ ์œ ํšจ ๋ฒ”์œ„ ์ถฉ๋Œ๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋˜ํ•œ, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ’์„ const์— ์ง์ ‘ ์„ ์–ธํ•˜๋ฏ€๋กœ ์ข€ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋‹ค.
const permissions = title === '๊ณผ์žฅ' ? ['๊ทผ๋กœ์‹œ๊ฐ„','์ˆ˜๋‹น'] : ['๊ทผ๋กœ์‹œ๊ฐ„'];
  • ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๊ฐ€๊ธ‰์  ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
const permissions = title === '๋ถ€์žฅ' || title === '๊ณผ์žฅ' ? 
title === '๊ณผ์žฅ' ?
['๊ทผ๋กœ์‹œ๊ฐ„', '์ดˆ๊ณผ๊ทผ๋ฌด์Šน์ธ', '์ˆ˜๋‹น'] : ['๊ทผ๋กœ์‹œ๊ฐ„', '์ดˆ๊ณผ๊ทผ๋ฌด์Šน์ธ']
: ['๊ทผ๋กœ์‹œ๊ฐ„'];
  • ์œ„์™€ ๊ฐ™์€ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์ค‘์ฒฉ๋œ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ์ œ๋Œ€๋กœ ์ฝ์„ ์ˆ˜ ์—†๊ฒŒ ๋˜์—ˆ๊ณ , ๋‹จ์ˆœํ•จ์ด๋ผ๋Š” ๊ฐ€์น˜๋„ ์žƒ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค.
  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ๋ธ”๋ก ์™ธ๋ถ€๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๋…๋ฆฝ์ ์ธ ํ•จ์ˆ˜๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณผ๋„ํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์šฐ๋ ค ์—†์ด const๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
function getTimePermissions({ title }) {
if(title === '๊ณผ์žฅ') {
return ['๊ทผ๋กœ์‹œ๊ฐ„', '์ดˆ๊ณผ๊ทผ๋ฌด์Šน์ธ', '์ˆ˜๋‹น'];
}
if (title === '๋ถ€์žฅ') {
return ['๊ทผ๋กœ์‹œ๊ฐ„', '์ดˆ๊ณผ๊ทผ๋ฌด์Šน์ธ'];
}
return ['๊ทผ๋กœ์‹œ๊ฐ„'];
}

const permissions = getTimePermissions({ title: '์‚ฌ์›' }); // ['๊ทผ๋กœ์‹œ๊ฐ„']
  • ์œ„์™€ ๊ฐ™์ด ์ถ”์ƒํ™” ์—†์ด ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์งง์€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๊ณ , ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ฒซ ๋‹จ๊ณ„์ด๊ธฐ๋„ ํ•˜๋‹ค.

๐ŸŽฏ ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์ด์šฉํ•ด ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ผ.โ€‹

  • **๋‹จ๋ฝ ํ‰๊ฐ€(short circuiting)**์˜ ๋ชฉ์ ์€ ๊ฐ€์žฅ ํƒ€๋‹นํ•œ ์ •๋ณด๋ฅผ ๋จผ์ € ์œ„์น˜์‹œ์ผœ์„œ ์ •๋ณด ํ™•์ธ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒƒ์ด๋‹ค.
  • ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์•„์ด์ฝ˜ ๊ฒฝ๋กœ๊ฐ€ ์ฐธ์ด๋ฉด ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์•„๋‹Œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.
const icon = {
path: 'acme/bar.png';
}

function getIconPath(icon) {
const path = icon.path ? icon.path : 'uploads/default.png';
return `https://assets.foo.com/${path}`;
}
getIconPath(icon); // 'https://assets.foo.com/acme/bar.png'
  • ์œ„ ์ฝ”๋“œ๋Š” icon.path๊ฐ€ ๋‘ ๋ฒˆ์ด๋‚˜ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์ „์— ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด์ž.
  • ||์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” OR์—ฐ์‚ฐ์ž๋Š” ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๊ฐ’์ด๋“  true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์„ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.
const name = 'sa' || 'I have no name';
name; // sa
  • ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
function getIconPath(icon) {
const path = icon.path || 'uploads/default.png';
return `https://assets.foo.com/${path}`;
}
  • ์ด์ œ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋กœ false๊ฐ€ ์žˆ์„ ๋•Œ ํ‘œํ˜„์‹์„ ์ค‘๋‹จ์‹œ์ผœ ๋ณด์ž.
  • ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์ด์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํŠน๋ณ„ํžˆ ํŠน์ • ์ปฌ๋ ‰์…˜์˜ ๋ฉ”์„œ๋“œ ๋˜๋Š” ๋™์ž‘์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
// ์ง€์ •๋œ ๋ฐฐ์—ด์ด ์—†์Œ
const userConfig1 = {
}
// ๋‚ด์šฉ์ด ์—†๋Š” ๋ฐฐ์—ด
const userConfig2 = {
images: []
}
// ๋‚ด์šฉ์ด ์žˆ๋Š” ๋ฐฐ์—ด
const userConfig3 = {
images: [
'me.png',
'work.png',
]
}
  • ์›ํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ || ์—ฐ์‚ฐ์ž๋กœ ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์ด์šฉํ•  ๋•Œ ์†์„ฑ์ด ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.
const userConfig1 = {
}
const img = userConfig1.images[0] || 'default.png';
// Uncaught TypeError: Cannot read property '0' of undefined
  • ์ด ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ ์ค‘์ฒฉ๋œ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
function getFirstImage(userConfig) {
let img = 'default.png';
if(userConfig.images) {
img = userConfig.images[0];
}
return img;
}
  • ํ•˜์ง€๋งŒ ์œ„ ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ๋„ ๋ฐฐ์—ด์— ํ•ญ๋ชฉ์ด ์—†์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
const userConfig = {
images: []
}
const img = getFirstImage(userConfig); // undefined
  • ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
function getFirstImage(userConfig) {
let img = 'default.png';
if(userConfig.images) {
if(userConfig.images.length){
img = userConfig.images[0];
}
}
return img;
}
  • ํ•˜์ง€๋งŒ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ๋ฝ ํ‰๊ฐ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
function getImage(userConfig) {
if(userConfig.images && userConfig.images.length > 0) {
return userConfig.images[0];
}
return 'default.png';
}
  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์™€ ์กฐํ•ฉํ•ด์„œ ํ™•์ธ ๊ณผ์ •์„ ํ•œ ์ค„๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
function getImage(userConfig) {
const images = userConfig.images;
return images && images.length ? images[0] : 'default.png';
}
  • ๋‹จ๋ฝ ํ‰๊ฐ€๋ฅผ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ์ฝ๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์ž. ๊ทธ์ € ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ์šฉ๋„๊ฐ€ ์•„๋‹ˆ๋‹ค.