숫자나 불리언을 문자열로 형변환하는 방법은 3가지 정도다.
1) (숫자 or 불리언).toString()
2) String(숫자 or 불리언)
3) "" + (숫자 or 불리언)
: Object.prototype.toString 메서드를 활용하는 방법
(111).toString() // "111"
(NaN).toString() // "NaN"
(Infinity).toString() // "Infinity"
: String 생성자 함수를 new 없이 활용하는 방법
String(111) // "111"
String(NaN) // "NaN"
String(Infinity) // "Infinity"
: 문자열 연결 연산자(+) 활용하는 방법. 따옴표로 감싼 빈 문자열을 더해주면 형변환이 발생한다.
111 + "" // "111"
NaN + "" // "NaN"
"" + Infinity // "Infinity"
: Object.prototype.toString 메서드를 활용하는 방법
(true).toString() // "true"
(false).toString() // "false"
: String 생성자 함수를 new 없이 활용하는 방법
String(true) // "true"
String(false) // "false"
: 문자열 연결 연산자(+) 활용하는 방법. 따옴표로 감싼 빈 문자열을 더해주면 형변환이 발생한다.
true + "" // "true"
"" + false // "false"
▶︎ (참고) undefined, null 타입의 경우, String()이나 "" + 로 문자열 변환이 가능. ( toString() 메서드는 사용 불가 )
▶︎ (참고) 숫자, 불리언은 객체가 아니지만, toString() 메서드를 호출할 수 있다.
문자열이나 불리언을 숫자로 형변환하는 방법은 4가지 정도다.
1) parseInt(정수 문자열) || parseFloat(실수 문자열)
2) Number(문자열 or 불리언)
3) + (문자열 or 불리언)
4) (문자열 or 불리언) * 1
: "111" 처럼 숫자로 된 문자열만 변환 가능하다. 숫자가 아닌 경우, NaN 반환
parseInt("11") // 11
parseFloat("11.55") // 11.55
parseInt("NaN") // NaN
parseFloat("NaN") // NaN
parseInt("Infinity") // Infinity
parseFloat("Infinity") // Infinity
parseInt("Hello") // NaN
Number("11"); // 11
Number("11.55"); // 11.55
Number("Hello"); // NaN
("11") // 11
"11.55" // 11.55
"-11" // -11
"Hello" // NaN
: 문자열에 *연산을 하면, 숫자로 형변환이 된다.
"11" * 1 // 11
"11.55" * 1 // 11.55
"-11" * 1 // -11
"Hello" * 1 // NaN
: true → 1, false → 0 으로 변환되며, parseInt(), parseFloat()는 적용 불가하다.
: Number 생성자 함수를 new 없이 활용하는 방법
Number(true) // 1
Number(false) // 0
(true) // 1
false // 0
: 불리언에 * 연산을 하면, 숫자로 형변환이 된다.
(true) * 1 // 1
false * 1 // 0
숫자, 문자열, 객체 등은 불리언 타입으로 변환 가능하다.
: Boolean() 생성자 함수를 new 연산자 없이 호출하여 불리언 타입으로 변환하는 방법
: 부정 논리연산자(!)를 연달아 두번 사용해서 불리언 타입으로 변환하는 방법
1) number to boolean
: 0, NaN은 false, 나머지는 모두 true.
Boolean(0); // false
Boolean(1); // true
Boolean(-11.55); // true
Boolean(NaN); // false
Boolean(Infinity); // true
Boolean(-Infinity); // true
!!(0); // false
!!(1); // true
!!(-11.55); // true
!!(NaN); // false
!!(Infinity); // true
!!(-Infinity); // true
2) string to boolean
: 빈문자열('')은 false, 나머지는 모두 true.
Boolean(''); // false
Boolean(' '); // true
Boolean('hello'); // true
Boolean('true'); // true
Boolean('false'); // true
!! (''); // false
!! (' '); // true
!! ('hello'); // true
!! ('true'); // true
!! ('false'); // true
3) object to boolean
: 배열, 객체는 모두 true
Boolean({}); // true (객체)
Boolean([]); // true (배열)
!!({}); // true (객체)
!!([]); // true (배열)
4) undefined, null to boolean
: undefined, null은 모두 false
Boolean(undefined); // false
Boolean(null); // false
!!(undefined); // false
!!(null); // false
출처: https://curryyou.tistory.com/188 [카레유]