JavaScript의 형 변환과 동치 비교

솜주먹·2022년 7월 20일
0

📢안내

  • 개발자를 꿈꾸는 뉴비입니다.
  • 틀린 부분이 있으면 지적 부탁드립니다.



📌 형 변환[1]

📖 암시적 변환

  • JavaScript 엔진이 필요에 따라 자동으로 타입을 변환시키는 것
// 초기화, 재할당에 따른 암시적 변환
let n = true
console.log(typeof n)	// boolean
n = 1
console.log(typeof n)	// number

// 산술 연잔자에 따른 암시적 변환
// 더하기(+) 연산자는 숫자보다 문자열이 우선시 되기때문에
// 숫자형이 문자형를 만나면 문자형가 된다. (문자 > 숫자)
let s = '1'
console.log(typeof(n + n))		// number + number = number
console.log(typeof(s + s))		// string + string = string
console.log(typeof(n + s))		// number + string = string

// 다른 연산자(-, *, /, %)는 숫자형이 문자형보다 우선되기 때문에
// 문자형 변환이 일어나지 않는다 (문자 < 숫자)
console.log(typeof(n - s))		// number - string = number
console.log(typeof(n * s))		// number * string = number
console.log(typeof(n / s))		// number / string = number

📖 명시적 변환

  • 개발자가 의도를 가지고 데이터 타입을 변환시키는 것
  • 함수 : Number(정수형,실수형), parseInt(정수형), String(문자형), toString(문자형)[2]
let n = 1
let s = '1'
console.log(typeof(Number(s))		// number
console.log(typeof(String(n))		// string

📌 동치 비교

📖 엄격하지 않은 동치 비교(==)

  • 암시적 변환을 통한 자동 형병환을 바탕으로 비교

📖 엄격한 동치 비교(===)

  • 자동 형변환을 하지 않고 비교
let n = 1
let s = '1'
console.log(n == s)			// true
console.log(n === s)		// false

❓ 주석

  1. 형 변환 : 프로그래밍에서 자료형을 다른 형태로 변경하는 것
    (type conversion, type casting, type coercion, type juggling)
  2. toString() : 2진법, 16진법으로 변환도 가능

0개의 댓글