개발일지./항해99

항해99 2주차 주특기 과제 (2.실습과제)

쭈(joo) 2022. 11. 18. 15:50

콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지,

왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요.

 

let b = 1;

function hi () {

const a = 1;

let b = 100;

b++;

console.log(a,b);

}

//console.log(a);

console.log(b);

hi();

console.log(b);

 

  • 답변 
console.log(b); //  첫번째 줄에 선언 한 let b = 1 의 값을 따라간다.
 
hi(); // 세번째 줄에 선언 된 const a = 1     네번째 줄에 선언 된 let b = 100 에 b++로 1이 더해져 101 이 출력된다.
 
console.log(b); //첫번째 줄에 전역변수로 선언 한 값을 따라간다.
 
주석으로 처리한   //console.log(a); 은 실행했을때  : 에러 Uncaught ReferenceError: 변수 is not defined 가 나온다
 
그러한 이유는 함수내 선언된 const는 함수 밖에서 참조할수 없다 . 
 
function hi ()  에 밖에 선언된  let b = 1;  처럼   함수 밖에서 선언을 해줘서 해결 할수 있다 
 
 
 
 
  
 

 

 

 

 

 

  • 두 값이 다른 이유를 설명해보세요.

 

1 == "1";
1 === "1";

 

  • 답변

1 == "1" ;은  자동 형변환으로 적용됨

 

 = >문자열로 변환이 가능하다고 여겨  숫자와 문자가 같다고 인식함

  

 

1==="1";

 

=>  === 를 사용하여  자동 형변환이 적용되지않게 해야함