# JS Quiz: Temporal dead zone edge case

**URL:** <https://forum.kirupa.com/t/js-quiz-temporal-dead-zone-edge-case/680028>\
**Category:** web dev\
**Created:** [April 5, 2026, 7:00am UTC](https://forum.kirupa.com/t/js-quiz-temporal-dead-zone-edge-case/680028 "2026-04-05T07:00:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ellen1979](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/ellen1979/32/31260_2.png) [@Ellen1979](https://forum.kirupa.com/u/Ellen1979)\
**Post date:** [April 5, 2026, 7:00am UTC](https://forum.kirupa.com/t/js-quiz-temporal-dead-zone-edge-case/680028/1 "2026-04-05T07:00:07Z")

</div>

What happens when this runs?

```js
{
  console.log(a);
  let a = 10;
}

```

_Poll ([view on site](https://forum.kirupa.com/t/js-quiz-temporal-dead-zone-edge-case/680028/1))_

Ellen

---

<div class="post-metadata">

**Author:** ![BobaMilk](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/bobamilk/32/31157_2.png) [@BobaMilk](https://forum.kirupa.com/u/BobaMilk)\
**Post date:** [April 5, 2026, 7:00am UTC](https://forum.kirupa.com/t/js-quiz-temporal-dead-zone-edge-case/680028/2 "2026-04-05T07:00:12Z")

</div>

My pick is “Throws ReferenceError before any log” because let is in the temporal dead zone until initialization, so reading a inside the block throws before console.log can print anything.

@Ellen1979, in

```js
{
  console.log(a);
let a = 10;
}

```

I’d pick **Throws ReferenceError before any log** , because `a` exists in the block but stays in TDZ until the `let` line runs.

BobaMilk
