4 ms·
looks awesome. why only es5 support?
by charrrzard 8y ago
looks awesome. why only es5 support?
- acemarke 8y agoProbably because ES6 syntax adds a lot more possible complications to the syntax tree.
- zawerf 8y agoES5 has a lot of interesting hoisting bugs. For example this doesn't print what you expect: for (var i = 0; i < 3; i++) { var text = 'number ' + i; setTimeout(function() { console.log(text); }, i * 1000); } But flipping var to let will fix it. The bug is that var is not block-scoped so everything refers to the same `text` variable which gets mutated by the next iteration. I was hoping their demo would be good for explaining this bug but it seems to be broken.
- jazzyjackson 8y agoThis is not a bug, this is spec. variables in javascript are not block scoped, but functionally scoped. the let keyword introduces block scope to javascript.