1. 자바스크립트 형 변환 (암묵적 형 변환)
ㅇ 암묵적 형 변환
- (수치 → 문자열)
. `+` 연산자 : 피 연산자들을 문자열로 형변환
.. 例) 3 + "0" => 문자열 "30"
- (문자열 → 수치)
. `-`,`*` 이항 연산자 : 피 연산자들을 수치로 형변환
.. 例) var test = "3"; test - 0 => 숫자 3
. `+` 단항 연산자 : 피 연산자를 수치로 형변환
.. 例) var test = "3"; +test => 숫자 3
- (수치,문자열 → 논리형)
. `!` 단항 연산자 : 피 연산자를 Boolean으로 형변환하고, 부정(negate) 연산을 함
ㅇ 비교 연산에 따른 암묵적인 형변환 결과
- `==` 비교 연산자 : 우선, 형변환을 해보고, 그 다음에 비교 과정을 수행함
. 단, 기본 타입의 경우에는 저장된 값에 대해 형변환 후 비교를 수행하지만,
참조 타입의 경우에는 저장된 값이 주소이므로, 비교 수행이 별 의미없음
- `===` 비교 연산자 : 형변환을 수행하지 않고, 엄격한 비교 과정을 수행함
ㅇ 논리 연산에 따른 암묵적인 형변환 결과 (즉, 조건문이나, Boolean() 함수의 결과)
- false로 간주되는 값들
. 빈 문자열 (''), 0, -0, NaN, null, undefinded => false
- true로 간주되는 값들
. 0을 제외한 숫자, 빈 문자열을 제외한 문자열, 모든 객체, 심볼
2. 자바스크립트 형 변환 (명시적 형 변환)
ㅇ 대부분, 암묵적인 자동 형 변환을 하지만, 때때로 명시적인 형 변환을 하려면,
- 주로, Boolean(),Number(),String(),Object() 함수를 많이 이용함
ㅇ 수치를 문자열로 명시적인 형변환 : Number 객체의 메소드들을 이용하는 방법
- toString()
- toLocaleString()
- toFixed()
- toExponential()
- toPrecision()
* 例) var num = 1234.567;
. num.toString() => "1234.567" (10진법)
. num.toString(16) => "4d2.9126E978d5" (16진법)
. num.toFixed(0) => "1234" (소수점 이하 버림)
. num.toFixed(2) => "1234.57" (소수점 이하 2자리에서 반올림)
. num.toFixed(4) => "1234.5670" (소수점 이하 4자리)
. num.toExponential(3) => "1.235e+3" (소수점 이하 3자리 표기 후 지수 표현)
. num.toPrecision(6) => "1234.57" (유효숫자 6개로 표현하되, 반올림)
. num.toPrecision(3) => "1.23e+3" (유효숫자 3개로 표현하되, 정수부 작으면 지수 표현)
ㅇ 문자열을 수치형으로 명시적인 형변환
- Number() 함수 : 문자열 등 모든 데이터형을 실수(부동소수점)로 형변환
. 例) Number("3.14") => 3.14, Number(true) => 1, Number(null) => 0,
Number(undefined) => NaN, Number([1,2,3]) => Nan, Number(NaN) => NaN
- parseInt() : 문자열을 정수로 형변환
. 例) parseInt("3.14") => 3
- parseInt(num,base) : base로 지정된 진법으로 해석하여 10진수 정수 형변환
. 例) parseInt("101",2) => 이진수로 해석하여 10진수 5
- parseFloat() : 소수점,지수 표현까지 포함한 문자열을 실수(부동소수점)로 형변환
. 例) parseFloat("3.14") => 3.14
- `-`,`*` 연산자