var three = true; const four = true; "> var three = true; const four = true; "> var three = true; const four = true; ">
<script>
var one = true;
const two = true;
</script>
<script type="module">
var three = true;
const four = true;
</script>
<script type="module">
// ???
</script>
과거의 js는 글로벌 아니면 함수 스코프 였다. 그러나 2가지 예외가 있다고 한다! catch?
try {
} catch (err) {
// ...
}
err은 catch 내부에서만 사용 가능하다.
한가지는 with 이다.
with (obj) {
}
strict 모드에서는 안쓴다... 안티 패턴이다...
{
var one = true;
const one = true;
}
Syntax 에러가 발생한다.
블록 내에 const가 있을 때 이 구문 이전 부분은 TDZ 이므로 one을 건드릴 수 없다는 것 같다!