`1 + 1 = ${1 + 1}` // "1 + 1 = 2"
''
, []
, null
, false
true
undefined
Truthy
(참으로 평가되는 값) 또는 Falsy
(거짓으로 평가되는 값)으로 구분Falsy
값false
undefined
null
NaN
''
Falsy
이외의 값은 모두 true
로 평가되는 Truthy
값이다.String
생성자 함수를 new
연산자 없이 호출하는 방법
Object.prototype.toString
메서드를 사용하는 방법
문자열 연결 연산자 (+
)를 이용하는 방법
// 1
String(1); // "1"
String(NaN); // "NaN"
// 2
(1).toString(); // "1"
(NaN).toString(); // "NaN"
// 3
1 + ''; // "1"
NaN + ''; //"NaN"
Number
생성자 함수를 new
연산자 없이 호출하는 방법
parseInt
, parseFloat
함수를 사용하는 방법(문자열만 숫자 타입으로 변경 가능)
+
단항 산술 연산자를 사용하는 방법
*
산술 연산자를 사용하는 방법
// 1.
Number('0'); // 0
Number('-1'); // -1
Number('10.53'); // 10.53
Number(true); // 1
Number(false); // 0
// 2.
parseInt('0'); // 0
parseInt('-1'); // -1
parseInt('10.53'); // 10.53
// 3.
+'0'; // 0
+'-1'; // -1
+true; // 1
+false; // 0
// 4.
'0'*1; // 0
'-1'*1; // -1
'10.53'*1; // 10.53
true * 1; // 1
flase * 1; // 0
Boolean 생성자 함수를 new
연산자 없이 호출하는 방법
!
부정 논리 연산자를 두 번 사용하는 방법
// 1.
// 문자열 => 불리언
Boolean('x'); // true
Boolean(''); // false
Boolean('false'); // true
// 숫자 => 불리언
Boolean(0); // false
Boolean(1); // true
Boolean(NaN); // false
Boolean(Infinity); // true
// null => 불리언
Boolean(null); // false
// undefined => 불리언
Boolean(undefined); // false
// 객체 => 불리언
Boolean([]); // true
Boolean({}); // true
// 2.
// 문자열 => 불리언
!!'x'; // true
!!''; // false
!!'false'; // true
// 숫자 => 불리언
!!0; // false
!!1; // true
!!NaN; // false
!!Infinity; // true
// null => 불리언
!!null; // false
// undefined => 불리언
!!undefined; // false
// 객체 => 불리언
!![]; // true
!!{}; // true
||
) 또는 논리곱(&&
) 연산자 표현식의 평가 결과는 불리언 값이 아닐 수 있다.'cat' && 'dog'; // 'dog'
&&
) 연산자 ||
) 연산자 null
또는 undefined
가 아닌지 확인하고 프로퍼티를 참조할 때var elem = null;
var value = elem && elem.value; // null
인수를 전달하지 않으면 매개변수에는 undefined
가 할당된다.
단축 평가를 이용해서 매개변수의 기본값을 설정하면 undefined
로 인해 발생할 수 있는 에러 방지
function getStringLength(str) {
str = str || '';
return str.length;
}
getStringLength(); // 0
getStringLength('hi'); // 2
```
?.
좌항의 피연산자가 null
혹은 undefined
인 경우 undefined
를 반환null
또는 undefined
가 아닌지 확인하고 프로퍼티를 참조할 때 유용var elem = null;
var value = elem?.value;
console.log(value); // undefined
??
좌항의 피연산자가 null
또는 undefined
인 경우 우항의 피연산자를 반환var foo = null ?? "default string";
console.log(foo); // "default string";