
기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것
+ ‘’ 를 숫자, boolean, null, undefined, Symbol, 객체 타입 뒤에 붙이면 문자열 타입으로 변환됨String 생성자 함수를 new 연산자 없이 호출
String(숫자 또는 불리언);
Object.prototype.toString() 메서드를 사용
(숫자 또는 불리언).toString();
문자열 연결 연산자를 이용
숫자 또는 불리언 + ‘’;
Number 생성자 함수를 new 연산자 없이 호출
Number(문자열 또는 불리언);
parseInt(), parseFloat() 함수 사용
parseInt(문자열만 가능); parseFloat(문자열);
+단항 산술 연산자를 이용
+문자열 또는 불리언;
*산술 연산자를 이용
문자열 또는 불리언 * 1;
Boolean 생성자 함수를 new 연산자 없이 호출
Boolean(문자열, 숫자, null, undefined, 객체);
! 부정 논리 연산자를 두 번 사용
!!문자열, 숫자, null, undefined, 객체;
표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것
논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환
논리 연산자를 사용한 단축 평가 사용하는 경우
var element = null;
var value = element.value; //TypeError
//단축 평가 사용시
var element = null; //null 이나 undefined 같은 falsy 값일 시 element로 평가됨
var value = element && element.value; //TypeError
function getStrLen(str) { //단축 평가로 매개변수의 기본값 설정되어 있음
str = str || '';
return str.length;
}
getStrLen(); //원래는 undefined
옵셔널 체이닝 연산자
?.는 좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고 그렇지 않으면 우항의 프로퍼티 참조하는 것
var element = null;
//element가 null 또는 undefined이면 undefined 반환하고 아니면 우항의 프로퍼티 참조
var value = element**?.**value;
console.log(value); //element가 null이므로 undefined 반환
null 병합 연산자
??는 좌항의 피연산자가 null 또는 undefined인 경우 우항의 피연산자를 반환하고, 그렇지 않으면 좌항의 피연산자를 반환하는 것
var foo = null ?? 'default string';
console.log(foo); //좌항이 null이므로 우항 'default string' 반환