7장 연산자
1번 퀴즈
Okky는 파라미터 n 값이 NaN일때 ‘성공’을 출력하기위해 다음과 같은 함수를 작성했다.
다음코드는 어떤값을 출력할지 서술하시오. [성공 / 실패]
solution = (n) => {
if (n === NaN) {
console.log("성공");
} else {
console.log("실패");
}
};
solution(NaN);
정답
정답은 ‘실패’가 출력됩니다.
NaN은 자신과 일치하지 않는 유일한 값이기때문입니다. 두가지의 메서드로 해결할 수 있습니다.
두가지 메서드로 해결하여 Okky가 의도한대로 올바르게 작성한 코드는 다음과 같습니다.
solution = (n) => {
if (Number.isNaN(n)) {
console.log("성공");
}
console.log("실패");
};
solution(NaN); // 성공 출력
solution = (n) => {
if (Object.is(NaN, n)) {
console.log("성공");
} else {
console.log("실패");
}
};
solution(NaN); // 성공 출력
참고 페이지(p.82 ~ p83)
2번 퀴즈
다음 코드의 출력값을 차례대로 서술하시오.
console.log(typeof "3");
console.log(typeof +'3');
console.log(typeof 1 * '3'); // 보라색이면 숫자, 하얀색이면 문자열
// 숫자로 변경
console.log(Number("3"));
// 문자로 변경
console.log(String("3"));
console.log(toString("3"));
정답
첫번째 console.log의 출력값은 string입니다.
두번째 console.log의 출력값은 number입니다.
참고 페이지(p.76 ~ p.77)
3번 퀴즈
다음 코드의 출력값을 서술하시오.
console.log(!!'false');
정답
정답은 “true가 출력된다.”입니다.
공백을 제외한 문자열은 오로지 true값이며, 논리연산자 ! 는 부정(NOT)한 불리언값을 반환합니다.
논리연산자 ! 를 두번 사용해 이중부정하였으므로 정답은 true입니다.
참고 페이지(p.85 ~ p.86)
⚠️추후에 공부해야할 부분
- 그 외의 연산자(p.90)
- 연산자 우선순위
- 연산자 결합순서