JavaScript - 문제 미리보기
문제 464
hard
다음 코드의 실행 결과는 무엇입니까?
```javascript
var x = 1;
let y = 2;
const z = 3;
{
var x = 10;
let y = 20;
const z = 30;
console.log(x, y, z); // 블록 내부
}
console.log(x, y, z); // 블록 외부
```
```javascript
var x = 1;
let y = 2;
const z = 3;
{
var x = 10;
let y = 20;
const z = 30;
console.log(x, y, z); // 블록 내부
}
console.log(x, y, z); // 블록 외부
```
정답: B
키워드별 스코프 동작:
1) `var`: 블록 스코프가 없음
블록 내 `var x = 10`이 전역 `var x = 1`을 덮어씀
블록 외부에서도 `x = 10`
2) `let`과 `const`: 블록 스코프를 가짐
블록 내에서만 새로운 변수 생성
블록 외부의 원래 값은 그대로 유지
결과:
1) 블록 내부: `10, 20, 30` (모두 블록 내 값)
2) 블록 외부: `10, 2, 3` (var는 변경됨, let/const는 원래 값)
1) `var`: 블록 스코프가 없음
블록 내 `var x = 10`이 전역 `var x = 1`을 덮어씀
블록 외부에서도 `x = 10`
2) `let`과 `const`: 블록 스코프를 가짐
블록 내에서만 새로운 변수 생성
블록 외부의 원래 값은 그대로 유지
결과:
1) 블록 내부: `10, 20, 30` (모두 블록 내 값)
2) 블록 외부: `10, 2, 3` (var는 변경됨, let/const는 원래 값)
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.