for-of with `const` variable

# Isiah Meadows (9 years ago)

I was toying around with for-of loops in Node 4.0, and I ran into the following problem:

$ node
> for (let i of [1, 2, 3]) console.log(i)

1
2
3
undefined
> for (const i of [1, 2, 3]) console.log(i)

1
1
1
undefined

That second loop is rather surprising. Is that the correct behavior (in which I need to file an ESLint bug), or is this a V8 bug?

# Jordan Harband (9 years ago)

It's a v8 bug in sloppy mode, in that v8 sloppy mode is still using legacy let/const semantics.

'use strict'; for (const i of [1, 2, 3]) console.log(i) will print out what you expect, since it properly rebinds per iteration.

# Isiah Meadows (9 years ago)

Thanks! (I forgot the Node REPL still runs in sloppy mode...)