Truthy: ์ฐธ์ด ์๋๋ผ ์ฐธ๊ฐ์ ๊ฐ
Falsy: ๊ฑฐ์ง์ด ์๋๋ผ ๊ฑฐ์ง๊ฐ์ ๊ฐ
์ด๊ฒ ๋ฌด์จ ์๋ฆฌ์ธ๊ฐ
์์๋ฅผ ๋ณด์
Truthy ex:
- {} ๋น ๊ฐ์ฒด
- [] ๋น ๋ฐฐ์ด
- 0์ ์ ์ธ ํ ์ซ์๊ฐ
- ๋น ๋ฌธ์์ด์ ์ ์ธํ ๋ฌธ์์ด
Falsy ex:
- null
- defined
- 0
- ๋น ๋ฌธ์์ด
- NaN
์์๋ฅผ ๋ณด๋๊น ๊ฐ์ด ์จ๋ค.
ํ์ด์ฌ์์๋ ๋น ๋ฐฐ์ด์ธ์ง ํ์ธํ ๋
# python
arr = []
if not arr:
print("๋น ๋ฐฐ์ด์
๋๋ค.")
else:
print("๋น ๋ฐฐ์ด์ด ์๋๋๋ค.")
์ ์์์ฒ๋ผ arr๋ฅผ true/false๋ก ๋ฐํํ์ฌ ํ๋จํ๋๋ฐ, ์ด๋ฐ ๊ฑธ truthy/falsy๋ผ๊ณ ํ๋ ๊ฒ ๊ฐ๋ค.
์์ Python ์์๋ฅผ JavaScript๋ก ๋ฐ๊ฟ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
# JavaScript
const arr = []
if (!arr) {
console.log("๋น ๋ฐฐ์ด์
๋๋ค.")
}else{
console.log("๋น ๋ฐฐ์ด์ด ์๋๋๋ค.")
}
๊ทธ๋ ๋ค๋ฉด ์ด Truthy์ Falsy๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ ์์๊น?
const getGender = (person) => {
return person.gender;
};
let person = { name: "Jedi", gender: "Female" };
const gender = getGender(person);
console.log(gender);
์ฌ๊ธฐ์ getGender ํจ์๋ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๊ณ , Gender ํ๋กํผํฐ๋ฅผ return ๋ฐ๋ ํจ์์ด๋ค.
์ด ๋, person์ด undefined๋ก ์ ๋ฌ๋๋ค๋ฉด?
๋น์ฐํ๊ฒ๋, undefined๋ ๊ฐ์ฒด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ person.gender๋ก ์ ๊ทผ์ ํ ์ ์์ด Error๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฌํ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํ ํด๊ฒฐ์ฑ ์ผ๋ก Falsy๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
const getGender = (person) => {
if (!person) {
return "๊ฐ์ฒด๊ฐ ์๋๋๋ค.";
}
return person.gender;
};
let person = undefined;
const gender = getGender(person);
console.log(gender); // ๊ฐ์ฒด๊ฐ ์๋๋๋ค.
person์ undefined/null์ ๋์ ํ๋ฉด false๋ฅผ ๋ฐํํ๊ฒ ๋๊ณ Error ๋์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'๐ฆ Computer Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] spread | ์ ๊ฐ ์ฐ์ฐ์ (0) | 2022.03.03 |
---|---|
[JavaScript] ๋น๊ตฌ์กฐํ ํ ๋น ๊ทธ๋ฆฌ๊ณ SWAP (0) | 2022.03.03 |
[JavaScript] ๋ฐฐ์ด ๋ด์ฅ ํจ์ (0) | 2022.02.21 |
[JavaScript] ์ฝ๋ฐฑ ํจ์ (0) | 2022.02.17 |
[JavaScript] ํจ์ (0) | 2022.02.17 |