1) 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요.
let b = 1;
function hi () {
const a = 1;
let b = 100;
b++;
console.log(a,b);
}
console.log(b);
hi();
console.log(b);
일단 처음 출력될 console.log(b)는 1이다.
두번쨰로 hi()는 1,101이다
세번째로 출력될 console.log(b)는 1이다.
hi()의 b값이 다른 이유는 function문의 스코프 안에서 b값이 변한 것이기 때문이다.
나머지 console.log(b)의 b는 맨 처음 선언된 b값인 1이 출력된다.
2) 두 값이 다른 이유를 설명해보세요.
1 == "1";
1 === "1";
두 값이 다른 이유는 ==와 === 때문이다.
==는 양 변의 값만 비교한다. 오른쪽의 문자열 1은 형 변환이 이루어져 숫자1로 비교하기 때문에 1==1과 같은 문장이다.
따라서 첫 줄은 true이다.
두번째 ===는 자료형까지 비교하기 때문에 숫자===문자열 이어서 false값이 출력된다.
'1차 공부 > JavaScript' 카테고리의 다른 글
fill() (0) | 2022.11.22 |
---|---|
reduce() (0) | 2022.11.22 |
호이스팅(hoisting)과 TDZ(temporal dead zone)은 무엇일까? (0) | 2022.11.19 |
JavaScript 객체와 불변성이란? (0) | 2022.11.19 |
JavaScript의 자료형과 JavaScript만의 특성은 무엇인가 (0) | 2022.11.19 |