๐ŸคŸ
Vanilla-JS
  • TRIPLE-PLUS Adout
  • Babel.JS
  • 01.Vanilla-JS
    • 01. Hello JavaScript
    • 02. ๋ณ€์ˆ˜
      • 02-1.์ง€ํ‚ค๋ฉด ์ข‹์€ ๋ฃฐ(๋” ์ข‹์€ ์Šคํƒ€์ผ์„ ์œ„ํ•ด์„œ)
      • 02-2.์ˆซ์žํ˜•๊ฟ€ํŒ(์ˆ˜์‹ ์ค„์ด๊ธฐ)
    • 03. ์—ฐ์‚ฐ์ž
    • 04. ์กฐ๊ฑด๋ฌธ
    • 05. ํ•จ์ˆ˜
      • this์˜ ์˜๋ฏธ 6๊ฐœ ์ด์ •๋ฆฌ
      • event listener์™€ constructor
      • 05-1. return:๋Œ๋ ค์ฃผ๋‹ค
      • 05-2. ํ˜• ๋ณ€ํ™˜ ํ•จ์ˆ˜
      • 05-3. Arrow function
    • 06. ๊ฐ์ฒด
    • 07. ๋ฐฐ์—ด
      • 07-1. ๋ฐฐ์—ด ์•ˆ์— ๋ฐฐ์—ด(2์ฐจ ๋ฐฐ์—ด)
      • 07-2. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(forEach)
      • 07-3. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(sort)
      • 07-4. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(map)
      • 07-5. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(indexOf)
      • 07-6. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(filter)
      • 07-7. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(splice, slice)
      • 07-8. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(shift, unshift, pop, push)
      • 07-9. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(concat, join)
      • 07-10. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(reduce)
      • 07-10. ๋ฐฐ์—ด๋‚ด์žฅ ํ•จ์ˆ˜(reduce)2
    • 08. ๋ฐ˜๋ณต๋ฌธ
    • 09. Class์™€ ํ”„๋กœํ† ํƒ€์ž…
      • 09-1. ํ”„๋กœํ† ํƒ€์ž…๊ณผ ํด๋ž˜์Šค - ์ƒ์„ฑ์ž
      • 09-2. ํ”„๋กœํ† ํƒ€์ž…๊ณผ ํด๋ž˜์Šค - ์ƒ์„ฑ์ž ์ƒ์†ํ•˜๊ธฐ
      • Class & Constructor & Method
      • super
      • Static Method
      • Class Getter, Setter
      • Information Hiding
      • Inheritance & Polymorphism
      • Overriding
      • Abstract Class
      • Interface
    • Math ์ •๋ฆฌ
    • String ์ •๋ฆฌ
    • Array์ •๋ฆฌ
    • Date ์ •๋ฆฌ
      • D-day ๊ตฌํ•˜๊ธฐ
  • 02.Vanilla-JS
    • 01.์‚ผํ•ญ์—ฐ์‚ฐ์ž
    • 02. Truthy and Falsy
    • 03. ๋‹จ์ถ• ํ‰๊ฐ€ ๋…ผ๋ฆฌ ๊ณ„์‚ฐ๋ฒ•
    • 04. ํ•จ์ˆ˜ ์—…๊ทธ๋ ˆ์ด๋“œ (default parameter/arguments)
    • 05. ์กฐ๊ฑด๋ฌธ ๋” ์Šค๋งˆํŠธํ•˜๊ฒŒ ์“ฐ๊ธฐ
    • 06. ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น (๊ตฌ์กฐ๋ถ„ํ•ด) ๋ฌธ๋ฒ•
    • 07. spread ์™€ rest
      • ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ์˜ rest(params)
      • ํ•จ์ˆ˜ ์ธ์ž์—์„œ์˜ spread
    • 08. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Scope ์— ๋Œ€ํ•œ ์ดํ•ด
    • 09. Hoisting ์ดํ•ดํ•˜๊ธฐ
    • 10. Native DOM ์„ ํƒ
  • 03.๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
    • 01. fetch, then, catch[Promise] ์ดํ•ดํ•˜๊ธฐ
    • 02. ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋Š” Promise ๊ฐ์ฒด
    • 03. async/await
    • 04. Promise all, Promise.race
  • REST API ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ
    • mongodb Atlas
    • mongodb Atlas(DB)์— ์ ‘๊ทผํ•˜๋ ค๋ฉด
    • URL ์ด๋ฆ„์ง“๊ธฐ ๊ด€์Šต
    • Database์— ์ž๋ฃŒ ์ €์žฅํ•˜๋Š” ๋ฒ•
    • ๊ฒŒ์‹œ๋ฌผ๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋‹ฌ์•„ ์ €์žฅํ•˜๊ธฐ
    • ๊ฒŒ์‹œ๋ฌผ๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋‹ฌ์•„ ์ €์žฅํ•˜๊ธฐ2
  • JQUERY + SCRIPT ์œ ์šฉํ•œ ์ฝ”๋“œ ์ •๋ฆฌ
  • Practice(์‹ค์Šต)
    • ์นด์šดํ„ฐ ๋งŒ๋“ค๊ธฐ
    • reduce
    • ๋ฐ์ดํ„ฐ ์ž๋ฃŒํ˜• ํ™œ์šฉํ•˜๊ธฐ1
    • ๋ฐ์ดํ„ฐ ์ž๋ฃŒํ˜• ํ™œ์šฉํ•˜๊ธฐ2
    • ๋ฐ์ดํ„ฐ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ(์‘์šฉ)1
    • ๋ฐ์ดํ„ฐ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ(์‘์šฉ)2
    • REST API
    • ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ1
    • ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ2
    • ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ3
    • ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น
    • rest + spread(์‘์šฉ)1
    • rest + spread(์‘์šฉ)2
    • rest + spread(์‘์šฉ)3
    • ๋ฐ˜๋ณต๋ฌธ ๋‚ด์žฅํ•จ์ˆ˜(์‘์šฉ)1
    • ํ•จ์ˆ˜ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ(์‘์šฉ)1
    • ์„œ๋ฒ„์™€์˜ ํ†ต์‹ 1
    • ์„œ๋ฒ„์™€์˜ ํ†ต์‹ 2
    • new Promise(์‘์šฉ)2
    • new Promise(์‘์šฉ)3
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ์œ„์ž„ ํ•ต์‹ฌ ์ •๋ฆฌ
Powered by GitBook
On this page
  • Truthy and Falsy
  • Falsy๊ฐ’ ์ข…๋ฅ˜๋“ค
  • Truthy๊ฐ’ ์ข…๋ฅ˜๋“ค

Was this helpful?

  1. 02.Vanilla-JS

02. Truthy and Falsy

Truthy and Falsy

์ด๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์•Œ์•„๋‘ฌ์•ผ ํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Truthy: true ๊ฐ™์€๊ฑฐ... Falsy: false ๊ฐ™์€๊ฑฐ... ๋ผ๊ณ  ์ดํ•ด๋ฅผ ํ•˜๋ฉด ๋˜๋Š”๋ฐ์š”, ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

function print(person) {
  console.log(person.name);
}

const person = {
  name: 'John'
};

print(person);

๋งŒ์•ฝ์— ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ, ๋งŒ์•ฝ print ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋น„์–ด์ง„ ์ฑ„๋กœ ์‹คํ–‰๋๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

function print(person) {
  console.log(person.name);
}

const person = {
  name: 'John'
};

print();

์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•ด๋ƒ…๋‹ˆ๋‹ค.

TypeError: Cannot read property 'name' of undefined

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ, ๋งŒ์•ฝ์— print ํ•จ์ˆ˜์—์„œ ๋งŒ์•ฝ์— object ๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๋ฉด, ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ฝ˜์†”์— ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

function print(person) {
  if (person === undefined) {
    return;
  }
  console.log(person.name);
}

const person = {
  name: 'John'
};

print();

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด print ์— null ๊ฐ’์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋˜๋ฉด ์–ด๋–จ๊นŒ์š”?

function print(person) {
  if (person === undefined) {
    console.log('person์ด ์—†๋„ค์š”');
    return;
  }
  console.log(person.name);
}

const person = null;
print(person);

๊ทธ๋Ÿฌ๋ฉด ๋˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

TypeError: Cannot read property 'name' of null

๊ทธ๋Ÿฌ๋ฉด ๋˜.. print ํ•จ์ˆ˜์— ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.

function print(person) {
  if (person === undefined || person === null) {
    console.log('person์ด ์—†๋„ค์š”');
    return;
  }
  console.log(person.name);
}

const person = null;
print(person);

์ด๋ ‡๊ฒŒ person ์ด undefined ์ด๊ฑฐ๋‚˜, null ์ธ ์ƒํ™ฉ์„ ๋Œ€๋น„ํ•˜๋ ค๋ฉด ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š”๋ฐ์š”, ์—ฌ๊ธฐ์„œ ์œ„ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ•์•ฝํ•ด์„œ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

function print(person) {
  if (!person) { // ์ถ•์•ฝํ•ด์„œ ์ž‘์„ฑ ํ•œ ์ฝ”๋“œ
    console.log('person์ด ์—†๋„ค์š”');
    return;
  }
  console.log(person.name);
}

const person = null;
print(person);

์ด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋Š”, undefined ์™€ null ์€ ๊ธฐ๋ณธ์ ์œผ Falsy ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Falsy ํ•œ ๊ฐ’ ์•ž์— ๋А๋‚Œํ‘œ๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด true ๋กœ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด๋ณด์„ธ์š”.

console.log(!undefined);  //true
console.log(!null);       //true

Falsy๊ฐ’ ์ข…๋ฅ˜๋“ค

Falsy ํ•œ ๊ฐ’ 5๊ฐœ ์žˆ์Šต๋‹ˆ๋‹ค.

console.log(!undefined);   //true
console.log(!null);        //true
console.log(!0);           //true
console.log(!'');          //true
console.log(!NaN);         //true

์ด ๊ฐ’์€ ๋ชจ๋‘ true ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Falsy ํ•œ ๊ฐ’์€ ์œ„ ๋‚˜์—ดํ•œ ๋‹ค์„ฏ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.! ๊ทธ๋ฆฌ๊ณ , ๊ทธ ์™ธ์˜ ๋ชจ๋“  ๊ฐ’์€ Truthy ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

Truthy๊ฐ’ ์ข…๋ฅ˜๋“ค

console.log(!3);                //false
console.log(!'hello');          //false 
console.log(!['array']);        //false 
console.log(![]);               //false
console.log(!{ });              //false 

์ด๋ฒˆ์—๋Š” ์•„๊นŒ์™€๋Š” ๋ฐ˜๋Œ€๋กœ ๋ชจ๋“  ๊ฐ’์ด false ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ํŒ ํ•˜๋‚˜๋ฅผ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—, ํŠน์ • ๊ฐ’์ด Truthy ํ•œ ๊ฐ’์ด๋ผ๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด false ๋กœ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

const value = { a: 1 };

const truthy = value ? true : false;

์ด์ „์— ๋ฐฐ์šด ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ value ๊ฐ’์˜ ์กด์žฌ ์—ฌ์— ๋”ฐ๋ผ ์‰ฝ๊ฒŒ true ๋ฐ false ๋กœ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

const value = { a: 1 };
const truthy = !!value;
console.log(truthy)        //true

!value ๋Š” false ๊ฐ€ ๋˜๊ณ , ์—ฌ๊ธฐ์— !false ๋Š” true ๊ฐ€ ๋˜์–ด์„œ, ๊ฒฐ๊ณผ๋Š” true ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Previous01.์‚ผํ•ญ์—ฐ์‚ฐ์žNext03. ๋‹จ์ถ• ํ‰๊ฐ€ ๋…ผ๋ฆฌ ๊ณ„์‚ฐ๋ฒ•

Last updated 5 years ago

Was this helpful?