๊ฐ๋ฐ์ ๋ฐ์ ๋ณด๋ฉด, ํนํ ์ธ์ด์ ๊ด๋ จ๋ ๋ฐ์ ๋ณด๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ด๋ จ๋ ๋ฐ์ด ๋ง๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ ์ธ์ด๋ก์ ํ์ ๋ณํ์ ์ํํ๊ฒ ๋๋ค.
์๋ฐ ์คํฌ๋ฆฝํธ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ์ด์ ๋ถ๋ถ์์ ์ด๋ฐ ๊ฑธ ๋ดค๋ค.
if ("" == 0) {
// ?!?!?!?! ์ด๊ฑด ์ฐธ
}
if (1 < x < 3) {
// ์ด๋ค x ๊ฐ์ด๋ ์ฐธ.....!
}
์๋ฐ๋ฅผ ๋ฉ์ธ์ผ๋ก ๊ณต๋ถํ ๋๋ ์ ์์ด ์ถฉ๊ฒฉ์ ๋ฐ์๋ค. ์๊ฐ ์ ํญ์์ธ์ง. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ ๋ฐ ๋ฌธ๋ฒ์ด ๊ฐ๋ฅํ์ง ์๊ฐํ๋ค.
1. if ("" == 0) ์ด ํญ์ ์ฐธ์ธ ์ด์
if ("" == 0) ์ด ํญ์ ์ฐธ์ธ ์ด์ ๋ == (๋์จํ ๋๋ฑ ์ฐ์ฐ์) ๋ฐ ํ์ ๋ณํ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ Number ๋ด์ฅ ํจ์ ๋๋ฌธ์ด๋ค.
== ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋, ํผ์ฐ์ฐ์์ ํ์ ์ด ๋ค๋ฅด๋ฉด ํ์ ๋ณํ์ ์๋ํ๋ค. ํผ์ฐ์ฐ์๋ 0์ผ๋ก number ์๋ฃํ์ด๋ค. ๊ทธ๋์ "" ๋น ๋ฌธ์์ด์ number ์๋ฃํ์ผ๋ก ๋ณํ์ ์๋ํ๋ค.
๋น ๋ฌธ์์ด("") ์ ์ซ์๋ก ๋ณํ๋๋ฉฐ, ์ซ์ ๊ฐ์ 0์ด ๋๋ค.
Number(""); // 0
๊ฒฐ๊ตญ ์๋์ ๊ฐ์ด ํ์ ๋ณํ์ด ๋์ผ๋ฏ๋ก ์ฐธ์ด ๋์ค๊ฒ ๋๋ค.
if(0 == 0) // true
"" == 0์ ํ์ ๋ณํ ํ ์ซ์ 0 == 0์ผ๋ก ๋น๊ต๋๊ธฐ ๋๋ฌธ์ ์ฐธ์ด๋ค.
2. if (1 < x < 3) ์ด ํญ์ ์ฐธ์ธ ์ด์
1 < x < 3์ ์ฐ์ฐ์ ์ฐ์ ์์์ ์๋ฌต์ ํ์ ๋ณํ ๋๋ฌธ์ ์๋์ ๋ค๋ฅด๊ฒ ๋์ํ๋ค.
์ฐ์ฐ์ ์ฐ์ ์์
JavaScript์์ < ์ฐ์ฐ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฐ์ ์์๊ฐ ์๋ค.
(1 < x) < 3
๊ทธ๋์ ์์ ๊ฐ์ด 1 < x ์ ๋จผ์ ์ฐ์ฐํ๋ค. x ๊ฐ 0์ด ์ค๋ ์ด๋ค ์ซ์๊ฐ ์ค๋ , ๊ทธ ๊ฐ์ true ๋๋ false ๊ฐ ๋์ฌ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ฉด ์ด๋ ๊ฒ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ๊ฒ์ด๋ค.
ture < 3
// ๋๋
fasle < 3
3๊ณผ ๋น๊ต ์ฐ์ฐ์ ํ๊ฒ ๋๋ฏ๋ก true ์ false ๋ number ๋ก ํ๋ณํ์ด ์ผ์ด๋๊ฒ ๋๊ณ , ๊ทธ ๊ฐ๋ค์ ์๋์ ๊ฐ๋ค.
Number(true); // 1
Number(false); // 0
๋์ฌ ์ ์๋ ๊ฐ์ 0 ๋๋ 1 ์ด๋ฏ๋ก ๋ฌด์กฐ๊ฑด 3๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ํญ์ ์ฐธ์ผ ์ ๋ฐ์ ์๋ค.
์๋๋๋ก ์๋ ์ํค๋ ค๋ฉด ์๋์ ๊ฐ์ด ๋์์ผ ํ๋ค.
if (1 < x && x < 3) {
// ์ด์ ์๋๋๋ก ์๋
}
Number() ๋ด์ฅ ํจ์
JavaScript์ ๋ด์ฅ ํจ์๋ก, ๋ค์ํ ํ์ ์ ๊ฐ์ ์ซ์(Number)๋ก ๋ณํํ๋ค. ์ด ํจ์๋ ํ์ ๋ณํ(Type Coercion)์ ๋ช ์์ ์ผ๋ก ์ํํ๋ค.
Number(value);
value: ์ซ์๋ก ๋ณํํ ๊ฐ. ๋ฐํ๊ฐ์ ๋ณํ๋ ์ซ์. ๋ณํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ NaN์ ๋ฐํํ๋ค.
boolean ๊ฐ ๋ณํ
console.log(Number(true)); // 1
console.log(Number(false)); // 0
๋ฌธ์์ด ๋ณํ
๋ฌธ์์ด์ด ์ ํจํ ์ซ์ ํํ์ผ ๊ฒฝ์ฐ, ํด๋น ์ซ์๋ก ๋ณํ.
์ซ์๋ก ๋ณํํ ์ ์๋ ๊ฒฝ์ฐ NaN ๋ฐํ.
console.log(Number("42")); // 42
console.log(Number("3.14")); // 3.14
console.log(Number(" 123 ")); // 123 (์๋ค ๊ณต๋ฐฑ ์ ๊ฑฐ)
console.log(Number("abc")); // NaN
console.log(Number("")); // 0 (๋น ๋ฌธ์์ด์ 0์ผ๋ก ๋ณํ)
null ๋ณํ
null ์ ํญ์ 0
console.log(Number(null)); // 0
undefined ๋ณํ
undefined ์ ํญ์ NaN
console.log(Number(undefined)); // NaN
๊ฐ์ฒด ๋ณํ
๊ฐ์ฒด๋ฅผ ์ซ์๋ก ๋ณํํ๋ ค๋ฉด, ๊ฐ์ฒด์ valueOf() ๋ฉ์๋๋ toString() ๋ฉ์๋๊ฐ ํธ์ถ๋์ด์ผ ํ๋ค.
๋ณํ ๊ฒฐ๊ณผ๊ฐ ์ ํจํ ์ซ์์ฌ์ผ ํ๋ค.
console.log(Number({})); // NaN
console.log(Number({ valueOf: () => 5 })); // 5
console.log(Number({ toString: () => "7" })); // 7
https://typescript-kr.github.io/pages/tutorials/ts-for-the-new-programmer.html
'JavaScript Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript ์ผ๋ฐ ํจ์์ ํ์ดํ ํจ์์ ์ฐจ์ด์ ๋ฌธ๋ฒ (0) | 2024.12.20 |
---|---|
JavaScript - ์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ (0) | 2024.12.19 |
JavaScript - if ๋ฌธ Truthy ์ Falsy ํ๊ฐ ๋ฐฉ์ (1) | 2024.12.18 |
๋๊ธ