John Barton wrote:

On Thu, Jan 30, 2014 at 7:54 AM, Brendan Eich <[email protected] <mailto:[email protected]>> wrote:

    John Lenz wrote:

        Generally, I've always thought of:

        "if (x) ..." as equivalent to "if (x) { ... }"


    let and const (and class) are block-scoped. {...} in your "if (x)
    {...}" is a block. An unbraced consequent is not a block, and you
    can't have a "conditional let binding".

    The restriction avoids nonsense such as

    let x = 0; { if (y) let x = 42; alert(x); }

    What pray tell is going on here, in your model?


I'm with John: the alert should say 0 and I can't see why that is not obvious.

Interesting!

You don't want the alert to show undefined, so the extent of the inner binding in your model is the unbraced consequent of the "if".

That is not "block scope" in any plain sense.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to