logoalt Hacker News

Vinnlyesterday at 2:18 PM4 repliesview on HN

I kinda like the way JS evolved into a modern language, where essentially ~everyone uses a linter that e.g. prevents the use of `var`. Sure, it's technically still in the language, but it's almost never used anymore.

(Assuming transpilers have stopped outputting it, which I'm not confident about.)


Replies

plorkyeranyesterday at 8:11 PM

I touch JS that uses var heavily on a daily basis and I would be incredibly surprised to find out that I am alone in that.

delaminatoryesterday at 2:36 PM

for some values of "everyone" and "never".

thunderforkyesterday at 2:33 PM

Depending on the transpiler and mode of operation, `var` is sometimes emitted.

For example, esbuild will emit var when targeting ESM, for performance and minification reasons. Because ESM has its own inherent scope barrier, this is fine, but it won't apply the same optimizations when targeting (e.g.) IIFE, because it's not fine in that context.

https://github.com/evanw/esbuild/issues/1301