JavaScript Programming

JavaScript์—์„œ 1 < x < 3์ด ํ•ญ์ƒ ์ฐธ์ธ ์ด์œ  - Number ๋‚ด์žฅ ํ•จ์ˆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2024. 12. 17.

 

๊ฐœ๋ฐœ์ž ๋ฐˆ์„ ๋ณด๋ฉด, ํŠนํžˆ ์–ธ์–ด์— ๊ด€๋ จ๋œ ๋ฐˆ์„ ๋ณด๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๊ด€๋ จ๋œ ๋ฐˆ์ด ๋งŽ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์  ํƒ€์ž… ์–ธ์–ด๋กœ์„œ ํƒ€์ž… ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ์ดˆ์ž…๋ถ€๋ถ„์—์„œ ์ด๋Ÿฐ ๊ฑธ ๋ดค๋‹ค.

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

 

TypeScript ํ•œ๊ธ€ ๋ฌธ์„œ

TypeScript ํ•œ๊ธ€ ๋ฒˆ์—ญ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค

typescript-kr.github.io

 

๋Œ“๊ธ€