Frontend/Javascript

[Javascript] ν˜•λ³€ν™˜

oneyenee 2023. 9. 13. 00:15
πŸ’‘
ν˜• λ³€ν™˜(Type Conversion) : ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μžλ£Œν˜•μ„ λ‹€λ₯Έ ν˜•νƒœλ‘œ λ³€κ²½ν•˜λŠ” 것.

λͺ…μ‹œμ  ν˜• λ³€ν™˜

μ‚¬μš©μžκ°€ μ›ν•˜λŠ” ν˜•νƒœλ‘œ 직접 λ°μ΄ν„°μ˜ νƒ€μž…μ„ λ³€κ²½ν•˜λŠ” 것

 

# 1. to String 

  • String( )
    • μ–΄λ–€ ν˜•νƒœλ“  문자둜 ν˜•λ³€ν™˜ κ°€λŠ₯ (null, undefined ... )
String(111) // "111"
String(Undefined) // "Undefined"
String(NaN) // "NaN"
String(true) // "true"

 

  • ( ).toString()
    • 2~36 μ‚¬μ΄μ˜ 값을 λŒ€μž…ν•˜λ©΄ 숫자λ₯Ό ν•΄λ‹Ή μ§„μˆ˜λ‘œ λ³€ν™˜ν•œ λ¬Έμžμ—΄μ„ 얻을 수 있음
    • 일반적으둠 μΈμžμ—†μ΄ μ‚¬μš©ν•΄μ„œ λ¬Έμžμ—΄μ„ μ–»μŒ
    • String()κ³Ό 달리 null, undefinedλ₯Ό .toString() ν•  경우 였λ₯˜ λ°œμƒ
let num = 25;
let str = num1.toString() // "25"
let str2 = num1.toString(2) // "11001"
(true).toString() // "true"

 

  • ( ) + ""
    • λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž(+)λ₯Ό ν™œμš©ν•΄, 빈 λ”°μ˜΄ν‘œ λ¬Έμžμ—΄μ„ 더해주면 전체가 String으둜 λ³€ν™˜λ¨
111 + "" // "111"
true + "" // "true"
NaN + "" // "NaN"​

 

# 2. to Number

  • Number( )
    • 인자λ₯Ό μ†Œμˆ˜μ κΉŒμ§€ ν¬ν•¨λœ μˆ«μžν˜•μœΌλ‘œ λ³€ν™˜ν•œλ‹€.
    • λ¬Έμžμ—΄μ΄ 숫자둜만 이루어지지 μ•ŠλŠ” 경우 NaN으둜 λ³€ν™˜
Number("1"); //1
Number("11.11"); // 11.11
Number("1a2b3c"); // NaN
Number(true); // 1
  • parseInt( )
    • 인자λ₯Ό μ†Œμˆ˜μ  μ•žμžλ¦¬κΉŒμ§€μ˜ μ •μˆ˜λ‘œ λ³€ν™˜ν•œλ‹€.
  • parseFloat( )
    • 인자λ₯Ό μ†Œμˆ˜μ  μ΄ν•˜κΉŒμ§€ ν¬ν•¨ν•œ μ‹€μˆ˜λ‘œ λ³€ν™˜ν•œλ‹€.
parseInt("11.11"); // 11
parseFloat("11.11"); // 11.11

 

# 3. to Boolean

  • Boolean( )
  • !! (λΆ€μ • λ…Όλ¦¬μ—°μ‚°μž λ‘λ²ˆ) 
    • 인자λ₯Ό true / false 둜 λ³€ν™˜ν•œλ‹€.
    • Boolean = !! κ³Ό λ™μΌν•˜κ²Œ μ‚¬μš©κ°€λŠ₯
// Number
Boolean(0); // false
Boolean(1); // true

Boolean(NaN); // false

Boolean(Infinity); // true

// String
Boolean(''); // false  λΉˆλ¬Έμžμ—΄λ§Œ false
Boolean('   '); // true 곡백이 ν•˜λ‚˜λΌλ„ λ“€μ–΄κ°€λ©΄ true. λ‚˜λ¨Έμ§€ λͺ¨λ‘ true

// Object, Array : λ°°μ—΄ κ°μ²΄λŠ” λͺ¨λ‘ true
Boolean({}); // true
Boolean([]); // true

// Undefined, null : λ‘˜λ‹€ false
Boolean(undefined); // false
Boolean(null); // false

 

μ•”μ‹œμ  ν˜• λ³€ν™˜

엔진에 μ˜ν•΄ μžλ™μœΌλ‘œ ν˜• λ³€ν™˜μ΄ 이루어 μ§€λŠ” 것

 

# 1. String Type

  • μ—°κ²°μ—°μ‚°μž(+) μ‚¬μš©μ‹œ ν”Όμ—°μ‚°μž 쀑 λ¬Έμžμ—΄μ΄ ν•˜λ‚˜λΌλ„ 있으면 String Type으둜 λ³€ν™˜λ¨.
  • undefined, null 도 λ¬Έμžμ—΄λ‘œ λ³€ν™˜λ¨
let a = "123"; //λ¬Έμžμ—΄
let b = 123; //μ •μˆ˜

a+b; // "123123"

 

# 2. Number Type

  • μ—°κ²°μ—°μ‚°μž(+) λ₯Ό μ œμ™Έν•œ μ‚°μˆ μ—°μ‚°μž(-,/,*,>,<...λ“±)λŠ” μ‚¬μš©μ‹œ ν”Όμ—°μ‚°μž 쀑 λ¬Έμžμ—΄μ΄ ν•˜λ‚˜λΌλ„ μžˆμ–΄λ„ Number Type으둜 λ³€ν™˜λœλ‹€.
2 * "2"  // 4 Number
1 + true // 2 : number
6 / "3" // 2 : number

 


μžλ£Œν˜• λΉ„κ΅μ‹œ μœ μ˜ν•  것

λ™λ“±μ—°μ‚°μž(==)와 μΌμΉ˜μ—°μ‚°μž(===)

  • λ™λ“±μ—°μ‚°μž(==) : ν”Όμ—°μ‚°μžμ˜ λ¦¬ν„°λŸ΄λ§Œ 비ꡐ.
  • μΌμΉ˜μ—°μ‚°μž(===) : ν”Όμ—°μ‚°μžμ˜ λ¦¬ν„°λŸ΄κ³Ό μžλ£Œν˜• νƒ€μž…κΉŒμ§€ 비ꡐ. μΌμΉ˜μ—°μ‚°μžλ₯Ό μ§€ν–₯ν•˜λŠ” 것이 μ’‹λ‹€.
let a = true;
let b = 1;

a == b; // true
a === b; // false
πŸ’‘
λ³€μˆ˜μ˜ 값이 μ–΄λ–€ μžλ£Œν˜•μΈμ§€ λͺ¨λ₯Όλ•Œ : typeof λ³€μˆ˜λͺ…

 

 

참고 링크