Hello!
Though this is a kind of syntax is probably macroable, interesting idea
appeared in my mind regarding let blocks, so I would show it here, maybe
it can actually be interesting for others as well.
The idea is to use existing let statement and extending it so one can
include { ... code ... } block in place of last assignment. Hold on for
a while: this form can merge with do-expressions by using 'let', not
'do' as the keyword:
let a = 4, b = 3; // normal let
let { throw new Error("Throw in an expression"); } // let-expression
let a = 4, b = 3, { a + b } // let-expression with own local lets
The third form is more or less the let-block from the PoV of reader,
even if in fact is a new do-expression using let keyword with some
let-assigment local to that block happening before.
I see a 'problem' that I can only distinguish if it is a let-statement
or let-expression at the end of it, but afaict it does not pose any real
gotchas for the compiler - it accumulates the assignment and at the
either make them let-statement and use them for the rest of enclosing
block or makes it let-expression and use them only locally.
Herby
Kyle Simpson wrote:
Just to wrap this thread up, quoting myself from another thread:
"In any case, I won't push my proposal anymore."
----
But for posterity sake, wanted to make one last comment as to why the various
suggestions for IIFE's and arrow expressions are inappropriate for the task:
they change (hijack) the behavior of `return`, `break`, and `continue`. A
standalone block like `{ let x = 2; .. }` or `let (x = 2) { .. }` can be placed
anywhere, inside a function, loop, etc, and not hijack these types of
statements.
I'll be sticking with:
```js
{ let x = 42;
console.log("The meaning of JS: ", x);
}
```
Appreciate the various thoughtful responses.
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss