2021-09-06 노션 페이지
기록된 노션을 다시 정리
어려웠던 부분
- 단축평가
- or
- 앞 부분만 true일 경우 앞부분 반환
- 뒷 부분만 true일 경우 뒷부분 반환
- 모두 true일 경우 앞부분 반환
- 앞부분이 true일 경우 바로 반환하기 때문- and
- 둘중 하나만 true일 경우 false부분 반환
- 모두 true일 경우 뒷부분 반환
- 무조건 두가지 모두 확인해야하기 때문에
타입변환
- 개발자가 의도로 타입을 변환시키는 것을 명시적 타입변환, 타입 캐스팅이라 한다.
- 개발자의 의도와 상관없이 타입이 변환되는 것을 암묵적 타입변환, 강제 타입변환이라 한다.
- 명시적 타입 변환도 마찬가지지만, 암묵적 타입 변환이 기존 값(위 예제의 경우, 변수 x의 값)을 직접 변경하는 것은 아니다.
암묵적 타입변환
아래 값들은 제어문의 조건식과 같이 불리언 값으로 평가되어야 할 컨텍스트에서 false로 평가되는 Falsy 값이다
- false
- undefined
- null
- 0, -0
- NaN
- ’’ (빈문자열)
function isTruthy(v) { // 불리언 타입으로 변환하여 연산함 return !!v; } console.log(isTruthy(true)); //true console.log(isTruthy('0')); //true console.log(isTruthy({})); //true console.log(isTruthy([])); //true
명시적 타입변환
- 문자열 타입으로 변환
console.log(String(1));
console.log((1).toString());
- 숫자열 타입으로 변환
console.log(number('1'));
: 해당 방법은 Number이란 것을 한 번에 알 수 있어 선호함console.log(+'0');
console.log(parseInt('0'));
console.log('0' * 1);
- 불리언 타입으로 변환
console.log(Boolean('x'));
단축평가
function getStringLength(str) { str = str || ''; return str.length } getStringLength(); // 0 getStringLength('hi'); // 2
함수를 호출할 때 인수를 전달하지 않으면 매개변수는 undefined를 갖는다.
단축평가를 통해 undefined는 boolean타입으로 변환 시 false를 반환한다.
그렇기에 str은 단축평가를 통해 빈문자열을 반환한다.
- 위에 패턴은 매개변수 default 값을 사용으로 대체될 수 있을 것 같다.
참조: poiemaweb.com